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;
}
自卑啊,也明白了并不是学到了什么就一定会用!要灵活变化啊~~~
#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;
}
相关文章推荐
- HDU-1969
- hdu 1969
- hdu 1969 Pie (二分法)
- hdu 1969 Pie
- HDU1969:Pie(二分)
- HDU 1969 高精度
- Pie(hdu 1969 二分查找)
- HDU - 1969 Pie (二分查找)
- HDU 1969(二分法)
- HDU 1969
- HDU 1969 Pie
- HDOJ 1969 HDU 1969 Pie ACM 1969 IN HDU
- (step4.1.2)hdu 1969(Pie——二分查找)
- hdu 1969 pie
- hdu 1969
- HDU 1969 Pie
- HDU 1969 高精度
- hdu 1969 二分+精度
- 【二分】hdu 1969 Pie(同木材加工)
- hdu 1969 Pie(二分)