(二分)HDU 1969 pie
2016-07-27 12:15
337 查看
简单的二分题,注意精度
不知道为什么老是WA
WA代码:
下面是AC代码
#include <stdio.h>
#include <math.h>
double pi = acos(-1.0);
int F,N,i;
double V[10001];
int test(double x)
{
int num=0;
for(i = 0; i < N;i++)
{
num += (int)(V[i]/x);
}
if(num>=F)
return 1;
else return 0;
}
int main()
{
int t,r;
double v,max,left,right,mid;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&N,&F);
F = F+1;
for(i = 0; i < N; i++)
{
scanf("%d",&r);
V[i] = pi*r*r;
v += V[i];
}
max = v/F;
left = 0.0;
right = max;
while((right-left)>1e-6)//注意这里的精度问题。
{
mid = (left+right)/2;
if(test(mid))
left = mid;
else right = mid;
}
printf("%.4f\n",mid);
}
return 0;
}
不知道为什么老是WA
WA代码:
#include <stdio.h> #include <math.h> double pi = acos(-1.0); #define eps 1e-7 int main() { int k,n,f,i,r,count; double mid,a[10005],low,up; scanf("%d",&k); while(k--) { low=0.0; up=0.0; scanf("%d%d",&n,&f); f+=1; for(i=0;i<n;i++) { scanf("%d",&r); a[i]=Pi*r*r; if(a[i]>up) up=a[i]; } mid=(up+low)/2; while(up-low>eps) { count=0; for(i=0;i<n;i++) count+=(int)(a[i]/mid); if(count>=f) low=mid; else up=mid; mid=(up+low)/2; } printf("%.4lf\n",mid); } return 0; }
下面是AC代码
#include <stdio.h>
#include <math.h>
double pi = acos(-1.0);
int F,N,i;
double V[10001];
int test(double x)
{
int num=0;
for(i = 0; i < N;i++)
{
num += (int)(V[i]/x);
}
if(num>=F)
return 1;
else return 0;
}
int main()
{
int t,r;
double v,max,left,right,mid;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&N,&F);
F = F+1;
for(i = 0; i < N; i++)
{
scanf("%d",&r);
V[i] = pi*r*r;
v += V[i];
}
max = v/F;
left = 0.0;
right = max;
while((right-left)>1e-6)//注意这里的精度问题。
{
mid = (left+right)/2;
if(test(mid))
left = mid;
else right = mid;
}
printf("%.4f\n",mid);
}
return 0;
}
相关文章推荐
- 需求变更的控制及管理
- 我的血泪史
- #CentOS on Mac#2.加入系统调用
- HDU 1361 Parencodings
- 十大销售管理软件排行榜
- copy_from_user()
- hdu 1003 Max Sum
- JAVA之TCP网络程序
- AutoItLibrary安装和常见问题解决
- 在头文件中加入#program once
- Xms Xmx PermSize MaxPermSize 区别
- 部分函数的递归与迭代(非递归)实现
- uva11045
- 51nod 最长公共子序列问题(动态规划)(LCS)(递归)
- 将引用的多个jar包通过MANIFEST.MF打包成一个jar
- 2001 计算两点间的距离
- 从零开始的Android新项目4 - Dagger2篇
- JScript中的条件注释详解(转载自网络)
- 房贷计算器java版
- SpringMVC验证