这是个DFS……简直丧病
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
double dfs(double x,double y,int n)
{
double ans = 1e9;
if(n == 1)
{
if(x < y)
swap(x,y);
return x / y;
}
for(int i = 1;i < n;i ++)
{
ans = min(ans,max(dfs(x/n*i,y,i),dfs(x/n*(n-i),y,n-i)));
ans = min(ans,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n-i)));
}
return ans;
}
double x,y;
int n;
int main()
{
scanf("%lf %lf %d",&x,&y,&n);
printf("%.6lf",dfs(x,y,n));
return 0;
}
挺好的题……记得面积和长度正相关……