Java实现派(Pie, NWERC 2006, LA 3635)

题目
有F+1个人来分N个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,且面积要相同。求每个人最多能得到多大面积的派(不必是圆形)。
输入的第一行为数据组数T。每组数据的第一行为两个整数N和F ( 1 ≤ N , F ≤ 10 000 ) ;第二行为 N 个整数 ri(1≤ri≤10 000),即各个派的半径。
对于每组数据,输出每人得到的派的面积的最大值,精确到10-3。
思路
我把我的分得大小得取值,用二分来取直,我的递归中sum就是分的份数
份数大了就说明分的每一份都小了,
份数小了,说明分的每一份都大了
终止条件是我的范围差小于0.001
import java.util.Scanner;
public class 派 {
public static int n=0,f=0;
public static double [] R;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
f = 1+sc.nextInt();
R= new double [n];
double sum=0.0;
for (int i = 0; i <n; i++) {
R[i]=sc.nextDouble();
R[i]=Math.PI*R[i]*R[i];
sum+=R[i];
}
double res =f(0,sum/f);
System.out.println(res);
}
public static double f(double l,double r){
if(r-l<=0.001){
return r;
}
double mid = (l+r)/2;
int sum=0;
for (int i = 0; i < R.length; i++) {
sum+=R[i]/mid;
}
//饼子小,分的太多
if(sum>=f)
return f(mid,r);
//饼子大,不够分
else
return f(l,mid);
}
}
Java实现派(Pie, NWERC 2006, LA 3635)的更多相关文章
- Uva 派 (Pie,NWERC 2006,LA 3635)
依然是一道二分查找 #include<iostream> #include<cstdio> #include<cmath> using namespace std; ...
- 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)
例题4 墓地雕塑(Graveyard, NEERC 2006, LA 3708) 在一个周长为10000的圆上等距分布着n个雕塑.现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周 ...
- 集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096)
集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096) 题目描述 有一个专门为了集合运算而设计的"集合栈"计算机.该 ...
- LA 3635 Pie 派 NWERC 2006
有 f + 1 个人来分 n 个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,并且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 这题很好做,使用二分法就OK. 首先在读取所有派 ...
- UVA 12097 LA 3635 Pie(二分法)
Pie My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a numbe ...
- LA 3635 派
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- LA 3635 Pie
题意:给出n个圆,分给n+1个人,求每个人最多能够得到多大面积的圆 二分每个人得到的圆的面积 #include<iostream> #include<cstdio> #incl ...
- 打印队列 (Printer Queue,ACM/ICPC NWERC 2006,UVA12100)
题目描述: 题目思路: 使用一个队列记录数字,一个优先队列记录优先级,如果相等即可打印: #include <iostream> #include <queue> using ...
- 集合栈计算机 (The SetStack Computer,ACM/ICPC NWERC 2006,UVa12096
题目描述: #include<iostream> #include<string> #include<set> #include<map> #inclu ...
随机推荐
- vs每次生成都全部编译的问题
最近vs每次生成都会编译整个工程,经查找为.qrc中的资源路径不存在导致,删除路径后问题解决. 原文来自微信公众号"程序员成长日志",已经工作的程序员朋友可以关注下,分享日常工作中 ...
- 豹子安全-注入工具-显错注入-asp_POST_显错_SQLServer_GetWebShell
豹子安全-注入工具-显错注入-SQL Server-上传WebShell 请看下列视频 . 该视频在停留10秒钟后开始. 或点击此处查看:豹子安全-注入工具-asp_POST_显错_SQLServer ...
- 【雕爷学编程】Arduino动手做(59)---RS232转TTL串口模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- linux常用命令---用户相关操作
用户相关操作
- 情人节闷在家里做画( 安卓统计图MPAndroidChart开发 )
有些时候觉得一个人挺好的,可以更自由安排自己的时间: 有些时候觉得有个人挺好的,很多事情一个人做起来太没意思了,纵使心中澎湃,倾听的独有自己. 废话少说,直接上图 MPAndroidChart是啥 一 ...
- SQL SERVER sa无法登陆的问题
安装的时候选择了 Windows 身份验证模式,只能windows内置账户登录解决方法:先登录(SQL Server Management Studio ),点服务器,右键->属性->安全 ...
- hdu3861他的子问题是poj2762二分匹配+Tarjan+有向图拆点 其实就是求DAG的最小覆盖点
The King’s Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- win-sudo插件解决Git bash 执行脚本报错问题 bash: sudo: command not found
Windows git bash 默认没有sudo命令,可以添加win-sudo插件实现该功能 curl -s https://raw.githubusercontent.com/imachug/wi ...
- mysql中的联合查询(内联、左联、外联、右联、全联)
转 https://www.cnblogs.com/withscorpion/p/9454490.html 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left oute ...
- Asp.net Identity身份与权限体系设计
1 Identity 介绍 2 授权系统 图1 体系结构 3 自定义 Attribute 自定义 Attribute 继承于 AuthorizeAttribute,AuthorizeAttribute ...