POJ 3122 Pie

原创 2016年08月28日 20:55:20

Description
My birthday is coming up and traditionally I’m serving pie. Not just one pie, no, I have a number N of them, of various tastes and of various sizes. F of my friends are coming to my party and each of them gets a piece of pie. This should be one piece of one pie, not several small pieces since that looks messy. This piece can be one whole pie though.
My friends are very annoying and if one of them gets a bigger piece than the others, they start complaining. Therefore all of them should get equally sized (but not necessarily equally shaped) pieces, even if this leads to some pie getting spoiled (which is better than spoiling the party). Of course, I want a piece of pie for myself too, and that piece should also be of the same size.
What is the largest possible piece size all of us can get? All the pies are cylindrical in shape and they all have the same height 1, but the radii of the pies can be different.


【题目分析】
这图有毒。题目很简单,很容易想到正解,只需要二分一下,然后向下取整判断是否可行就好了,感觉精度要求并不是很严格。轻松水过。


【代码】

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
const double pi=3.1415926535897932;
double p[10001];
int t,n,f;
int main()
{
    ios::sync_with_stdio(false);
    scanf("%d",&t);
    while (t--)
    {
        scanf("%d%d",&n,&f);f++;
        double sum=0;
        for (int i=1;i<=n;++i)
        {
            int r;cin>>r;
            p[i]=r*r;
            sum+=p[i];
        }
        double l=0,r=sum/f,mid;
        while (r-l>1e-7)
        {
            mid=(l+r)/2;
            int cnt=0;
            for (int i=1;i<=n;++i)
                cnt+=(int)(p[i]/mid);
            if (cnt>=f) l=mid;
            else r=mid;
        }
        printf("%.4f\n",mid*pi);
    }
}
版权声明:标注来源之后可随意引用[请记得添加友链]

POJ 3122 Pie(简单二分)

Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12486   Accepted:...
  • yeguxin
  • yeguxin
  • 2015年07月25日 09:26
  • 803

POJ 3122 Pie 二分查找 +高精度

点击打开链接 题意:作者要开一个生日party,他现在拥有n块高度都为1的圆柱形奶酪,  已知每块奶酪的底面半径为r不等,作者邀请了f个朋友参加了他的party,  他要把这些奶酪平均分给所有的...
  • became_a_wolf
  • became_a_wolf
  • 2016年02月24日 14:50
  • 489

POJ 3122 Pie (二分查找)

Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14107   Accepted:...
  • yao1373446012
  • yao1373446012
  • 2016年03月30日 17:03
  • 328

POJ 3122 Pie(二分)

Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12873   Accepted:...
  • u014361775
  • u014361775
  • 2015年08月17日 16:17
  • 196

poj 3122 Pie (二分)

Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I hav...
  • acm_BaiHuzi
  • acm_BaiHuzi
  • 2014年11月24日 20:41
  • 492

【POJ】[3122]Pie

二分思想的运用 通过最大值到0的不断二分逼近 来寻找可能的最大值有别于二分查找在数组中找某一个数 这里不需要对数组进行排序 因为判断的是当前mid可以分的个数 如果分的少了 说明需要小些 ...
  • u011493189
  • u011493189
  • 2016年04月01日 20:18
  • 123

POJ 3122 Pie (二分)

Description My birthday is coming up and traditionally I’m serving pie. Not just one pie, no, I ha...
  • qq_28954601
  • qq_28954601
  • 2017年01月11日 21:25
  • 256

POJ - 3122 Pie

Pie Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u ...
  • qq_18738333
  • qq_18738333
  • 2015年03月27日 02:28
  • 266

[poj 3122] Pie 二分

Pie Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14126 Accepted: 4844 ...
  • ALPS233
  • ALPS233
  • 2016年04月01日 10:00
  • 205

poj 3122 Pie (二分查找)

题意:我生日派对时,准备了n个圆柱形的pie,半径比一定相同,但高都为1, 邀请了f个朋友,加上自己一共f+1人,需要将n个pie分给f+1个人 要求:每个人分得的pie尺寸要一样大, 并且同一个人所...
  • acm_code
  • acm_code
  • 2015年01月28日 16:37
  • 1075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3122 Pie
举报原因:
原因补充:

(最多只允许输入30个字)