bzoj1024
这道题说实话第一眼看到是绝望。。。
但是看到数据范围后便松了口气:爆搜能过
因此,这道题的精髓就在于爆搜,是没有任何优化的爆搜。。
#include<bits/stdc++.h> using namespace std; double x,y; int n; double dfs(double x,double y,int d){ double ret=1e9; if(d==1){ if(x<y) swap(x,y); return x/y; } for(int i=1;i<=d/2;i++){ double tmp=x*(double)i/(double)d; ret=min(ret,max(dfs(tmp,y,i),dfs(x-tmp,y,d-i))); } for(int i=1;i<=d/2;i++){ double tmp=y*(double)i/(double)d; ret=min(ret,max(dfs(x,tmp,i),dfs(x,y-tmp,d-i))); } return ret; } int main(){ scanf("%lf%lf%d",&x,&y,&n); printf("%.6lf",dfs(x,y,n)); return 0; }