Pie

来源:互联网 发布:域名注册.网址是什么 编辑:程序博客网 时间:2024/04/29 17:56

题意:

给出人数,蛋糕数,以及各蛋糕的半径,求每个人能平均分到的最大面积

思路:

也是求最大值,与assemble类似,用到二分取尽量大的匹配

代码:

#include<iostream>#include<cmath>#include<cstring>#include<string>#include<cstdio>#include<algorithm>using namespace std;const double pi=acos(-1.0);int k, f;double s[10005];int main() {int kase;int r;scanf("%d", &kase);while(kase --) {double maxs = 0;scanf("%d%d", &k, &f);for(int i=0; i<k; i++) {scanf("%d", &r);s[i] = pi*r*r;maxs = max(maxs, s[i]);}double l=0, r=maxs;while(r-l>1e-6) {double mid = (l+r)/2;int sum = 0;for(int i=0; i<k; i++) {sum += s[i]/mid; }if(sum >= f+1) l = mid;else r = mid;}printf("%.4lf\n", l);}return 0;}


0 0
原创粉丝点击