您的位置:首页 > 其它

BZOJ1024: [SCOI2009]生日快乐(洛谷P4160)

2018-02-24 12:40 197 查看

DFS

BZOJ题目传送门

洛谷题目传送门

刚开始没看到矩形。。。以为是立体的。。。

这道题想到的话就变成**题了。

因为每个人必须获得相同面积的蛋糕,所以每一刀都必须切在nn等分点上(nn为当前剩下的刀数)。当n=1n=1时答案是确定的。于是只要递归下去计算就好了。

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,x,y;
double ans=1e18;
inline double dfs(double x,double y,int n){
if (x<y) swap(x,y); if (n==1) return x/y;
double ans=1e18;
for (int i=1;i<=n/2;i++){
//分开讨论一下就好了
ans=min(ans,max(dfs(x*i/n,y,i),dfs(x*(n-i)/n,y,n-i)));
ans=min(ans,max(dfs(x,y*i/n,i),dfs(x,y*(n-i)/n,n-i)));
}
return ans;
}
int main(){
scanf("%d%d%d",&x,&y,&n);
return printf("%.6f",dfs(x,y,n)),0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: