UVALive - 3635 Pie

10 篇文章 0 订阅
8 篇文章 0 订阅

主要是二分,在加上一点点贪心的思想。每个人分到的派只能来自于同一个派

eps取太小会tle,0.001就够了,倒是PI必须很精确,不然wa,可惜我只背的到3.1415926。。。win7计算器里的派:3.1415926535897932384626433832795


#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAX 10010
#define PI 3.141592653589793238462
#define EPS 0.0001
using namespace std;

double s[MAX];

int main()
{
    int t,n,f,i,j,piece;
    double front,rear,all,help;
    scanf("%d",&t);
    while(t--)
    {
        all=0;
        scanf("%d %d",&n,&f);<pre name="code" class="cpp"><span style="white-space:pre">	</span>f++;
for(i=0;i<n;i++) { scanf("%lf",&s[i]); s[i]=PI*s[i]*s[i]; all+=s[i]; } front=EPS,rear=all/f; while(rear-front>EPS) { piece=0; help=(front+rear)/2; for(i=0;i<n;i++) piece+=int(s[i]/help); if(piece>f) front=help; else rear=help; } printf("%.4lf\n",front); } return 0;}
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值