UVa12097 LA3635 Pie
对面积在[0,maxa]内进行二分,其中maxa=max(maxa, A[i]),表示所有圆面积的最大值
对于面积x,计算一共可以切成多少份面积为x的派,看这个数目够不够F+1;
如果cnt >= F+1,L = M; 否则 R = M;
while ( R-L > eps ) { M = L + (R-L)/2; if ( ok(M) ) L = M; else R = M; } printf ( "%.4lf\n", L );
其中ok函数:
bool ok(double x) { int cnt = 0; for ( int i = 0; i < N; ++i ) cnt += floor(A[i]/x); return cnt >= F+1; }