[SCOI 2009] 生日快乐

[题目链接]

        https://www.lydsy.com/JudgeOnline/problem.php?id=1024

[算法]

         直接DFS,即可

[代码]

        

#include<bits/stdc++.h>
using namespace std;

double x,y;
int n;

double min(double x,double y)
{
    return x < y ? x : y;
}
double max(double x,double y)
{
    return x > y ? x : y;
}
inline double dfs(double x,double y,int n)
{
    int i;
    double t1,t2,ret;
    if (n == 1) return max(x,y) / min(x,y);
    ret = 2e9;
    for (i = 1; i < n; i++)
    {
        t1 = max(dfs(x * i / n,y,i),dfs(x * (n - i) / n,y,n - i));
        t2 = max(dfs(x,y * i / n,i),dfs(x,y * (n - i) / n,n - i));
        ret = min(ret,min(t1,t2));
    }
    return ret;
}

int main()
{
    
    scanf("%lf%lf%d",&x,&y,&n);
    printf("%.6lf
",dfs(x,y,n));
    
    return 0;
}
原文地址:https://www.cnblogs.com/evenbao/p/9345603.html