简单搜索题 以为很难。。
/************************************************************** Problem: 1024 User: lxy8584099 Language: C++ Result: Accepted Time:64 ms Memory:820 kb ****************************************************************/ /* 暴搜 没看见均分二字把我迷得够。。。 枚举左右(或者上下)面积 切成 i/k 另一半则是 (k-i)/k */ #include<cstdio> #include<algorithm> #define db double using namespace std; const db esp=1e-9; db Cale(db x,db y,int k) { db res=1e9; if(k==1) return max(x/y,y/x); for(int i=1;i<=(k>>1);i++) { res=min(res,max(Cale(x/k*i,y,i),Cale(x/k*(k-i),y,k-i))); res=min(res,max(Cale(x,y/k*i,i),Cale(x,y/k*(k-i),k-i))); } return res; } int main() { int x,y,k; scanf("%d%d%d",&x,&y,&k); printf("%.6lf",Cale(x,y,k)); return 0; }

京公网安备 11010502036488号