bzoj1024搜索

时间:2023-03-09 01:56:40
bzoj1024搜索

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

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

然而极其难写

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

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

那就只能暴力了

 #include <cstdio>
#define INF 100000
int x,y,n;
inline double min(double a,double b){return(a<b)?a:b;}
inline double max(double a,double b){return(a>b)?a:b;}
double find(double x,double y,int n)
{
if(n==) return(x>y)?(x/y):(y/x);
double ans=INF;
for(int i=;i<=n/;i++)
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))));
return ans;
}
int main()
{
scanf("%d%d%d",&x,&y,&n);
printf("%.6f",find(x,y,n));
return ;
}