[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\n",dfs(x,y,n)); return 0; }