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 }