码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-09-19 22:09:44      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

进度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搜索

标签:

原文地址:http://www.cnblogs.com/wanglichao/p/5886627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!