您的位置:首页 > 其它

hdu 1969

2012-02-19 21:03 211 查看
这一题起初我连题目都没有看懂,汗,貌似最近自己对题目的理解有点障碍啊,得多多看书了,最好拿本英文书阅读,泪崩啊……郁闷中,理解题目了,但是没有头绪,不知道这一题哪里是二分题目了,茫然中搜了题解/article/4984145.html

自卑啊,也明白了并不是学到了什么就一定会用!要灵活变化啊~~~

#include "stdio.h"
#include "math.h"
#define pi acos(-1.0)//!!
#define er 1e-6

double area[10005];

int main()
{
int T;
int pie,per;
int r,ins,i;
double sum,start,end,mid;

scanf("%d",&T);
while(T--)
{
scanf("%d%d",&pie,&per);
sum=0;
for(i=0;i<pie;i++)
{
scanf("%d",&r);
area[i]=pi*r*r;
sum+=area[i];
}

sum=sum/(per+1);
start=0;
end=sum;
while(fabs(start-end)>er)
{
mid=(start+end)/2;

ins=0;
for(i=0;i<pie;i++)
{
if(area[i]/mid)
ins=ins+(int)(area[i]/mid);
}
if(ins>per)
start=mid;
else
end=mid;
}

printf("%.4lf\n",start);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: