/*
POJ1064 Cable master 时间限制: 1000MS 内存限制: 10000K
提交总数: 58217 接受: 12146
描述 Wonderland的居民已经决定举办地区性编程比赛。评委会自愿并承诺举办有史以来最诚实的比赛。决定使用“星形”拓扑结构为参赛者连接计算机 - 即将它们全部连接到单个中央集线器。为了组织一场真正诚实的比赛,评审委员会负责人决定将所有参赛选手均匀地放在距离该比赛中心的地方。
为了购买网线,评审委员会联系了当地的网络解决方案供应商,要求为他们出售具有相同长度的特定数量的电缆。评审委员会希望电缆尽可能长地让参赛者尽可能远离彼此。
公司的Cable Master被分配到该任务。他知道长达一厘米的股票中的每根电缆的长度,并且他可以以厘米精度切割它们,告诉他必须切割的碎片的长度。然而,这一次,这个长度还不知道,而且有线电视大师完全不解。
您需要编写一个程序来帮助Cable Master,该程序将确定可从电缆中切断的电缆段的最大可能长度,以获得指定数量的段。
输入 输入文件的第一行包含两个整数n和k,用空格分隔。N(1 = N = 10000)是库存中的电缆数量,K(1 = K = 10000)是请求数量。第一行后面是N行,每行一个数字,以米为单位指定库存中每条电缆的长度。所有电缆长度至少1米,最长100公里。输入文件中的所有长度都以厘米精度写入,精确到小数点后两位数字。
产量 在输出文件中写出Cable Master可能从电缆中切断的部件的最大长度(以米为单位)以获取所需数量的部件。数字必须以厘米精度写入,精确到小数点后两位数字。
如果无法削减所请求的每件至少一厘米长的件数,则输出文件必须包含单个数字“0.00”(不含引号)。
示例输入 4 11
8.02
7.43
4.57
5.39
示例输出 2.00 来源 东北欧洲2001
*/ import java.util.Scanner; public class Main {
static int N, K;
static double[] a; public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
K = sc.nextInt();
a = new double[N];
for (int i = 0; i < N; i++)
a[i] = sc.nextDouble();
sc.close();
double low = -1, high = 100001;
while (high - low > 0.001) {
double mid = (low + high) / 2;
if (C(mid)) {
low = mid;
} else {
high = mid;
}
}
if (high < 0.01)
System.out.println("0.00");
else
System.out.println(String.format("%.2f", (int) (high * 100) / 100.0));
} static boolean C(double X) {
int count = 0;
for (int i = 0; i < N; i++)
count = count + (int) (a[i] / X);
return count >= K;
}
}

二分法的应用:POJ1064 Cable master的更多相关文章

  1. poj1064 Cable master(二分)

    Cable master 求电缆的最大长度(二分法)   Description Inhabitants of the Wonderland have decided to hold a region ...

  2. poj1064 Cable master

    Description Inhabitants of the Wonderland have decided to hold a regional programming contest. The J ...

  3. poj1064 Cable master(二分查找,精度)

    https://vjudge.net/problem/POJ-1064 二分就相当于不停地折半试. C++AC,G++WA不知为何,有人说C函数ans那里爆int了,改了之后也没什么用. #inclu ...

  4. POJ1064 Cable master 【二分找最大值】

    题目:题目太长了! https://vjudge.net/problem/POJ-1064 题意分析:给了你N根长度为小数形式的棍子,再给出了你需要分的棍子的数量K,但要求你这K根棍子的长度必须是一样 ...

  5. POJ1064 Cable master(二分 浮点误差)

    题目链接:传送门 题目大意: 给出n根长度为1-1e5的电线,想要从中切割出k段等长的部分(不可拼接),问这个k段等长的电线最长可以是多长(保留两位小数向下取整). 思路: 很裸的题意,二分答案即可. ...

  6. POJ 1064 Cable master (二分法+精度控制)

    Cable master Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65358   Accepted: 13453 De ...

  7. hdu 1551 Cable master (二分法)

    Cable master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  8. Cable master 求电缆的最大长度(二分法)

    Description Inhabitants of the Wonderland have decided to hold a regional programming contest. The J ...

  9. 【POJ - 1064】Cable master(二分)

    Cable master Descriptions 输入2个数 N  K n条绳子    要分成大于等于k段 求每段最长多长呢?并且每段不能小于1cm 必须以厘米精度写入数字,小数点后正好是两位数.如 ...

随机推荐

  1. 深入理解java虚拟机JVM(下)

    深入理解java虚拟机JVM(下) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  2. python 文件复制压缩

    import os import time #这里是需要文件所在的位置 source=['"C:\\My Documents"',"C:\\Code"] #转换 ...

  3. vue子组件获取父组件方法

    注:以下代码未使用esLint语法检查 父组件: <template> <div class="wrapper"> <cp_action @paren ...

  4. MySQL中可能遇到的问题及解决方法

    一.在创建存储函数时,出现错误: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQLDA ...

  5. String的static方法

    //String concat(String str) 拼接字符串 String concat_str0 = "abc"; String concat_str1 = "b ...

  6. Web前端/全栈核心(html5/css3/js/vue/react/angular/es6/node)观看笔记

    a标签中的超链接,需要加   http://    否则会出现页面找不到. iframe中添加a标签,a标签中的target属性可以控制即将打开的页面,在那个位置显示. _blank 在新窗口中打开被 ...

  7. leetcode-168周赛-1297-子串的最大出现次数

    题目描述: 自己的提交: class Solution: def maxFreq(self, s: str, maxLetters: int, minSize: int, maxSize: int) ...

  8. 如何 修改jsp页面时间格式

    先导入文件 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> &l ...

  9. Shiro学习(9)JSP标签

    Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮. 导入标签库 Java代码   <%@taglib prefix="shiro&qu ...

  10. 攻防世界 MISC篇

    Excaliflag 一张图片,winhex打开没什么发现,分值不高,应该属于常见的图片隐写题目.如果对于图片的格式有详细的了解,应该很容易就能够知道了属于最低有效位(LSB)隐写,下面是通过phot ...