poj 3122 pie

题意是:某人在生日的时候请朋友一起吃pie,但是他的朋友十分挑剔,

如果有人分到了一块比其他人大的pie,那么其他的朋友就会抱怨,因此每个人,
包括主人,都必须分到大小一样的pie,但是每个人的pie只能是从一块大的圆形pie中切出来的,
要求求出每人能分到的最大的pie,给定圆形pie的数量 n,朋友数量m,以及每个pie的半径r

利用二分上界就是其中体积最大的那个pie,下界为0,求出mid看看以此大小可以分给多少人,如果小于m则是mid大了,high=mid,如果人数》=m则满足要求,求出最大的的即可。
代码:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
const double PI=acos(-1.0);
const int  N=10010;
double s[N];
int r[N];
int main()
{
 int T,i;
 int n,f;
 while(scanf("%d",&T)!=EOF)
 {
  while(T--)
  {
   scanf("%d%d",&n,&f);
   f++;
   for(i=0;i<n;i++)
    scanf("%d",&r[i]);
   sort(r,r+n);
   for(i=0;i<n;i++)
   {
    s[i]=(double(r[i]*r[i]));
   }
   double low=0,high=s[n-1];
   double num=0;
   while(high-low>1e-6)
   {
    double mid=(low+high)/2;
    double tf=f;
    int i=n-1;
    while(i>=0&&tf>0)
    {
     int m=(int)(s[i]/mid);
     tf-=m;
     i--;
    }
    if(tf>0)
     high=mid;
    else
    {
     low=mid;
     num=mid;
    }
   }
   printf("%.4lf\n",num*PI);
  }
 }
 return 0;
}
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值