POJ 3122 Pie 解题报告(二分)
来源:互联网 发布:java连接数据库的代码 编辑:程序博客网 时间:2024/05/20 09:47
题目大意不说了,很容易想到二分。这题的难点在于精度问题。
首先π,我们可以 const double pi=acos(-1.0); 求高精度pi。再者,在一块饼能分多少块的问题上,不要加eps了……因为这个原因wrong了很多次,我本人是很不理解的……AC代码如下:
#include <cstdio>#include <cstring>#include <cmath>using namespace std;const double eps=1e-7;const double pi=acos(-1.0);double d[10001];int m,n;bool judge(double mid){ int num=0; for(int i=0;i<n;i++) num+=(int)(d[i]/mid); return num>=m;}int main(){ int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); m++; double l=eps; double r=0; for(int i=0;i<n;i++) { int t; scanf("%d",&t); d[i]=t*t*pi; r+=d[i]; } while(r-l>eps) { double mid=(l+r)/2; if(judge(mid)) l=mid; else r=mid; } printf("%.4f\n",l); }}
事后做了测试,如果使用num+=(int)(d[i]/mid+eps);,会和原来的相差较大,样例虽然都能过,但是如果样例强一点就wa了。
- POJ 3122 Pie 解题报告(二分)
- POJ-3122 Pie 解题报告(二分) 平分派饼
- POJ 3122 Pie解题报告
- POJ-1129 Pie 解题报告
- POJ 3122 Pie(二分)
- POJ 3122 Pie (二分)
- poj 3122 Pie(二分)
- POJ 3122 Pie 二分
- POJ 3122 Pie 二分
- poj 3122 Pie (二分)
- Pie - POJ 3122 二分
- POJ 3122 Pie(二分)
- POJ 3122pie(二分)
- POJ 3122 pie 二分
- [poj 3122] Pie 二分
- POJ Pie 3122 (二分)
- POJ 3122 - Pie(二分)
- poj 3122 Pie (高精度+二分)
- 谁动了我的奶酪-读后感
- [Android分享] 使用触摸手势(一)
- linux中shell截取字符串方法总结 关键符号${}
- Java线程池 一些简单应用
- POJ-2234-Matches Game
- POJ 3122 Pie 解题报告(二分)
- 【Java学习】spring入门之依赖注入(DI)
- 大学生创业为什么会挂掉?——来自2年实际孵化工作的总结
- cd、mv、cp、tar、gzip、wc等指令使用
- PIC单片机开发环境--MPLAB X IDE
- 约瑟夫环问题
- Linux下rpm安装的mysql数据库的数据存放位置和其重要目录的介绍。
- 实现RCP从新启动功能
- 怎样写参数个数可变的宏