[BZOJ1024]SCOI2009 生日快乐|DFS

来源:互联网 发布:拳皇13pc版 出招优化 编辑:程序博客网 时间:2024/05/14 05:07

这种傻逼题竟然想不出怎么做。。。N这么小直接爆搜,dfs(x,y,n)表示x*y要切成n块,然后枚举切下去之后两边各分几块,这里又有切长边和切短边两种。。

#include<iostream>#include<cstdio>#include<cmath>using namespace std;int n,i;double x,y;double dfs(double x,double y,int k){if (x>y) swap(x,y);if (k==1) return y/x;double ans=99999;for (int i=1;i<=k/2;i++){ans=min(ans,max(dfs(x,y/k*i,i),dfs(x,y/k*(k-i),k-i)));ans=min(ans,max(dfs(y,x/k*i,i),dfs(y,x/k*(k-i),k-i)));}return ans;}int main(){scanf("%lf%lf%d",&x,&y,&n);printf("%.6lf",dfs(x,y,n));}


0 0
原创粉丝点击