1024: [SCOI2009]生日快乐
2018-04-17 22:03
267 查看
思路
好题!
x,y太大了,直接搜索切在哪里显然会TLE,所以换种方法切。
由于要求所有的蛋糕必须面积等大,所以在一次切的过程中,不论横切还是竖切,必须切在等分点上,即使切完分成的两份的面积之比 等于 人数之比。
所以搜索时记录三个变量,蛋糕大小,人数,枚举切的位置。
疑惑:开始忘记了m/2,于是就没有输出,感觉也可以输出的吧?
代码
#include<cstdio> #include<algorithm> #include<iostream> using namespace std; double X,Y,n; double dfs(double x,double y,int m) { if (m==1) { return max(x/y,y/x); } double ans = 1e9; for (int i=1; i<=(m>>1); ++i) { // - double tx = x*(1.0*i/(1.0*m)); ans = min(ans,max(dfs(tx,y,i),dfs(x-tx,y,m-i))); } for (int i=1; i<=(m>>1); ++i) { // - double ty = y*(1.0*i/(1.0*m)); ans = min(ans,max(dfs(x,ty,i),dfs(x,y-ty,m-i))); } return ans; } int main() { cin >> X >> Y >> n; printf("%.6lf",dfs(X,Y,n)); return 0; }
相关文章推荐
- bzoj1024 [SCOI2009]生日快乐
- BZOJ 1024 【SCOI2009】 生日快乐
- 1024: [SCOI2009]生日快乐
- 【BZOJ 1024】 [SCOI2009]生日快乐
- bzoj 1024: [SCOI2009]生日快乐
- 【BZOJ 1024】[SCOI2009]生日快乐
- 【BZOJ】【1024】【SCOI2009】生日快乐
- 【bzoj1024】[SCOI2009]生日快乐
- BZOJ1024: [SCOI2009]生日快乐
- bzoj 1024: [SCOI2009]生日快乐
- BZOJ 1024: [SCOI2009]生日快乐
- 1024: [SCOI2009]生日快乐
- 【bzoj 1024】: [SCOI2009]生日快乐
- BZOJ1024: [SCOI2009]生日快乐
- bzoj千题计划115:bzoj1024: [SCOI2009]生日快乐
- bzoj1024: [SCOI2009]生日快乐
- BZOJ1024: [SCOI2009]生日快乐
- BZOJ 1024 [SCOI2009]生日快乐
- BZOJ 1024: [SCOI2009]生日快乐
- [bzoj]1024: [SCOI2009]生日快乐