【数据规模和约定】
100%的数据,满足 1 <= X,Y <= 10000 ; 1 <= N <= 10 。
就是暴搜啊,每次枚举切的位置,为了保证大家分到的蛋糕一样大,必须面积均分
#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<functional> #include<iostream> #include<cmath> #include<cctype> #include<ctime> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define ForD(i,n) for(int i=n;i;i--) #define RepD(i,n) for(int i=n;i>=0;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define MAXN (10+1) double x,y; int n; double dfs(double x,double y,int n) { double ans=1e9; if (x<y) swap(x,y); if (n==1) return x/y; For(i,n-1) { ans=min(ans,max(dfs(x/n*i,y,i),dfs(x/n*(n-i),y,n-i))); ans=min(ans,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n-i))); } return ans; } int main() { cin>>x>>y>>n; printf("%.6lf",dfs(x,y,n)); return 0; }