uvaLive3635
来源:互联网 发布:禅道数据库默认密码 编辑:程序博客网 时间:2024/05/17 02:03
题目大意:
分pie给小朋友,有N个派,F+1个小朋友,求每个小朋友可以分到的最大的派,派不可以是拼凑起来的。
思路:
由于受到了上一题(组装电脑)的影响,所以这一题看起来感觉类似,也想着用二分做,二分出每个小孩子可以分到的派的大小,然后判断这个大小是否可行。只需将每个派的面积处以这个大小,所有的值加起来看是否大于F+1。
代码:
#include <iostream>using namespace std;#include <cstring>#include <stdio.h>#include <cmath>#include <cstdlib>const double PI = acos(-1.0);int N,F;double A[10005];bool ok(double m) { int sum = 0; for(int i = 0 ; i < N; i++) { sum = sum + floor(A[i]/m); } if(sum >= F + 1) return true; else return false;}int main() { int T; double r; double maxa; scanf("%d",&T); while(T--) { maxa = 0; scanf("%d %d",&N,&F); for(int i = 0; i < N; i++) { scanf("%lf",&r); A[i] = PI*r*r; maxa = max(maxa,A[i]); } double l = 0, r = maxa,mid; while(r - l > 1e-5) { mid = (l + r)/2; if(ok(mid)) l = mid; else r = mid; // 两个地方都应该是mid } printf("%.5lf\n",r); } return 0;}
0 0
- uvaLive3635
- 【UVALive3635】Pie(浮点二分)
- 中国网络安全企业50强
- UI_自定义标签控制器
- 《转》VMware vSphere 5.1 学习系列之四:安装 SQL Server 数据库
- [从头学数学] 第59节 三位数乘两位数
- HDU-5521-Meeting【2015沈阳赛区】【最短路】
- uvaLive3635
- 《转》VMware vSphere 5.1 学习系列之五:安装 vCenter Server
- 重启服务器后显示nginx error!以及vsftpd mysqladmin无法连接问题
- NYOJ:题目33 蛇形填数
- Leetcode 219. Contains Duplicate II
- 设计模式六种关系:依赖、关联、聚合、组合、继承和实现
- SwipeRefreshLayout与RecyclerView的巧夺天工
- 最常用的15大Eclipse开发快捷键技巧
- 2016太原网络营销师郭文军如何编辑往网站内容文章?