【二分查找】-HDU-1969-Pie
来源:互联网 发布:spss for mac 23 编辑:程序博客网 时间:2024/05/01 15:16
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1969
题目描述:
这位富二代过生日请小伙伴们吃pie,要求把pie平均分成(F+1)块(加上自己),每份必须是一整块,不能是若干块拼起来的。问一份最大体积是多少。
解题思路:
虽说这题很水,但第二次做二分。。没什么经验,还是琢磨了一阵,,然后就是通过不断判定 left right 变量是否成立二分找答案。难度不大,详见代码。
之后一直WA。没办法,上网查了别人代码。The answer should be given as a floating point number with an absolute error of at most 10^(-3).
这句话的意思竟然是printf %.4lf !我日你大爷。好吧,改完AC了。
教训:以后圆周率统统写成 acos( -1.0 )。这题精度设到1e-7。注意不要精度不够,不要超时。还有不要写cout了!!用 printf!
AC代码:
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <cmath>#define PI acos(-1.0)#define eps 1e-7using namespace std;double N,F;double v[10050],tv[10050];int ok(double x){ if(!x)return 1; memset(tv,0,sizeof(tv)); for(int i=0; i<N; i++) { tv[i]=v[i]; } int i,num=0,flag=0; for(i=0; i<=N; i++) { if(num>=F+1) { flag=1; break; } if(tv[i]>=x) { while(tv[i]>=x) { tv[i]-=x; num++; } } } if(flag)return 1; return 0;}int main(){ int T,r,i; double sum; cin>>T; while(T--) { cin>>N>>F; memset(v,0,sizeof(v)); sum=0; for(i=0; i<N; i++) { cin>>r; v[i]=r*r; sum+=v[i]; }double left,right; left=0; right=sum/(F+1); while(right-left>eps) { double mid=(left+right)/2.0; if(ok(mid)) left=mid; else right=mid; } printf("%.4lf\n",left*PI); } return 0;}
AC截图: 0 0
- 【二分查找】-HDU-1969-Pie
- HDU 1969 Pie(二分查找)
- HDU 1969 Pie (二分查找)
- HDU pie (二分查找)
- HDU 1969 Pie(二分查找)
- HDU 1969(Pie) 二分查找答案
- hdu 1969 Pie(贪心+二分查找)(简单)
- hdu 1969 Pie(二分查找)
- HDU - 1969 Pie (二分查找)
- HDU 1969--Pie【二分】
- HDU 1969 Pie【二分】
- HDU-1969-Pie【二分】
- HDU 1969 Pie(二分)
- hdu 1969 Pie 二分
- HDU 1969 Pie [二分]
- (step4.1.2)hdu 1969(Pie——二分查找)
- hdu 1969Pie(uvaoj 3635) 二分查找
- HDOJ 1969 Pie(二分查找)
- VC ++ 注册DLL
- CentOS下使用默认的文档查看器打开PDF文档乱码的解决方案
- nginx源码剖析
- MVC 新手上路
- 已获得 OLE DB 记录。源:“Microsoft SQL Native Client” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'id',表 'ToolingD
- 【二分查找】-HDU-1969-Pie
- java基础--HashSet集合
- 【android开发】ANDROID处理JSON格式的数据
- 用C#生成.dll 供VB6的开发人员调用
- 开放╱封闭原则
- IMediaSeeking 相关接口信息
- 在插件中调用表单上配置的业务逻辑和控制页签控件
- 新品上市调查方案(2)-测试结果
- Hdu1166 step5.3.2敌兵布阵(简单的树状数组)