首页 > 代码库 > 【不可能的任务20/200】bzoj1024搜索

【不可能的任务20/200】bzoj1024搜索

进度1/10mark(感觉完不成了)

事实上我刚看到题目一下子慌了,,,我在想怎么二分一块的长宽,然后验证

然而极其难写

于是想有没有暴力,举一些例子模拟一下

然后发现切割是有很明显的限制的:每次切割两边的面积一定是整数比,于是每次可以割的地方都不到10了

那就只能暴力了

 1 #include <cstdio> 2 #define INF 100000 3 int x,y,n; 4 inline double min(double a,double b){return(a<b)?a:b;} 5 inline double max(double a,double b){return(a>b)?a:b;} 6 double find(double x,double y,int n) 7 { 8     if(n==1) return(x>y)?(x/y):(y/x); 9     double ans=INF;10     for(int i=1;i<=n/2;i++)11         ans=min(ans,min(max(find(x/n*i,y,i),find(x/n*(n-i),y,n-i)),max(find(x,y/n*i,i),find(x,y/n*(n-i),n-i))));12     return ans;13 }14 int main()15 {16     scanf("%d%d%d",&x,&y,&n);17     printf("%.6f",find(x,y,n));18     return 0;19 }

 

【不可能的任务20/200】bzoj1024搜索