HDU1969 PIE 二分查找
来源:互联网 发布:列表 js 点击显示详情 编辑:程序博客网 时间:2024/05/16 10:31
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1969
题目意思:有n个块饼和M+1个人要分饼,且每人一块,饼不能拼接,要求每人分得的最大的饼的面积
思路:二分,先用总的饼的面积 / 人数 = 理论上最大面积,取为上界high,再求一个mid ,一直到循环退出,不能在中途找到时结束循环
if(饼能分成M+1份)
{ left = mid }
else { right = mid }
#include<cstring>#include<string>#include<fstream>#include<iostream>#include<iomanip>#include<cstdio>#include<cctype>#include<algorithm>#include<queue>#include<map>#include<set>#include<vector>#include<stack>#include<ctime>#include<cstdlib>#include<functional>#include<cmath>using namespace std;#define PI acos(-1.0)#define MAXN 100005#define eps 1e-7#define INF 0x7FFFFFFF#define ff sqrt(5.0)double val[100005];int n,m,t;int check(double x){ int sum=0; for(int i = 0;i < n;i++) { sum += val[i] / x; } if(sum >= m + 1) return 1; else return 0;}double mid,r,l,maxval;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); maxval = 0; for(int i = 0;i < n; i++) { scanf("%lf",&val[i]); val[i] = val[i] * val[i] * PI; maxval += val[i]; } mid = maxval / (m + 1); r = mid; l = 0.0; while(r - l > 1e-7) { if(check(mid)) { l = mid; } else { r = mid; } mid=(l + r) / 2.0; } printf("%.4lf\n",mid); } return 0;}
0 0
- 二分查找 hdu1969 pie
- HDU1969 PIE 二分查找
- hdu1969 Pie 二分
- hdu1969(pie二分)
- HDU1969---Pie 二分
- HDU1969:Pie(二分)
- hdu1969 Pie 二分
- hdu1969 Pie(二分答案)
- HDU1969 Pie(二分搜索)
- hdu1969 pie【二分】
- hdu1969 Pie (二分)
- HDU1969:Pie(二分)
- Hdu1969-Pie-【二分】
- poj 3122&&hdu1969 Pie(二分)
- 【hdu1969】Pie——二分
- HDU1969:Pie(二分 + 贪心)
- hdu1969之二分查找
- hdu1969 Pie
- Jquery的相关的主要选择器
- c语言 结构体 、数组的使用,定义的同时必须初始化,否者它们成员的数值会错乱,不是想象的样子
- C语言内存分配问题
- 没有main方法的java程序
- Java学习笔记(六)static关键字
- HDU1969 PIE 二分查找
- 利用JQuery实现注册页面的验证功能
- 如何学习新技术
- poj Yogurt factory (贪心水题)
- Uva 10168 - Summation of Four Primes
- C++中如何表示2进制,8进制,16进制变量
- 梵蒂冈合肥和规范化规范和规范化规范化个复合肥
- How To Install A Downloaded Magento Theme
- ubuntu下PATH路径的设置——工作笔记