poj3122pei解题报告
来源:互联网 发布:思科 云计算 广州 编辑:程序博客网 时间:2024/06/01 18:55
这是一道贪心的题目,网上说了很多关于它在精度方面的问题,但我想说的是,这题同样的代码,用g++提交要TLE,用c++提交63ms
思路很简单,二分即可,但要注意的是分给每个人的派形状可以不同,不一定非要是圆柱体,所以二分的时候,直接拿中间的平方值去除半径的平方就可以得到派的数量。
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;const double PI= 3.14159265358979323846264338327950288;const int maxn=10000+100;double pies[maxn];double r;int n,f;int main(){ int t; cin>>t; while(t--) { cin>>n>>f;//包括主人应该有f+1个人 f++; double maxs=0.0; for(int i=0;i<n;i++) { cin>>r; pies[i]=r*r; maxs=max(pies[i],maxs); } double low=0.0,high=maxs,mid;//m是下界,n是上界,二分~~ while(high-low>1e-7) { mid=(high+low)/2; int cnt=0; for(int i=0;i<n;i++) { cnt+=(int)pies[i]/mid; } if(cnt>=f) low=mid; else high=mid; } printf("%.4lf\n",mid*PI); } return 0;}
0 0
- poj3122pei解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- 计算机启动的过程
- 正则表达式判断是否截断文本
- 随思自己的职业历程之写博客
- M3U8文件简介
- 2015.6.10
- poj3122pei解题报告
- Android Menu 布局
- IOS UI基础控件
- 【VB.NET机房重构】七层登录
- Java加密技术(三)—— HMACSHA1 加密算法
- linux下搭建生成HLS所需的.ts和.m3u8文件
- Swift中的willSet与didSet
- OOAD 学习笔记 九
- Eclipse中maven环境搭配,使用jetty启动后不能更改css,js文件的解决方法