/*
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");elseSystem.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;}
}

转载于:https://www.cnblogs.com/Alpharun/p/8663332.html

二分法的应用:POJ1064 Cable master相关推荐

  1. Cable master (POJ No.1064)

    二分搜索思想:bool C(double x)可以得到长度为x的绳子 //#define LOCAL #include<stdio.h> #include<math.h> in ...

  2. POJ 1064 -- Cable master(二分)

    题目链接 Description Inhabitants of the Wonderland have decided to hold a regional programming contest. ...

  3. (poj)1064 Cable master 二分+精度

    题目链接:http://poj.org/problem?id=1064 DescriptionInhabitants of the Wonderland have decided to hold a ...

  4. (二分搜索)cable master

    题目: Inhabitants of the Wonderland have decided to hold a regional programming contest. The Judging C ...

  5. 电缆总管 Cable master(挑战程序设计竞赛)

    题目链接:电缆总管 Cable master(挑战程序设计竞赛) - ​​​​​​​​​ 题目大意: 给n条绳子的长度找k条绳子(长度相同)的最大长度 思路: 二分答案 代码: #include &l ...

  6. POJ 1064 Cable master (二分答案,G++不过,C++就过了)

    题目: 这题有点坑,G++过不了,C++能过. 条件:n个数据a[],分成k段,结果精度要求两位小数. 问题:每段最长为多少? 思路:因为精度要求为两位小数,我先把所有的长度a[]*100. 我们对答 ...

  7. poj 1064 Cable master

    题意:给n段绳子,长度分别为c1,c2.....,切成相等的k段,求最大的长度 分析:二分长度,唯一注意的一点,输出的时候的精度 #include<iostream> #include&l ...

  8. POJ 1064 Cable master (二分答案)

    题目链接:http://poj.org/problem?id=1064 有n条绳子,长度分别是Li.问你要是从中切出m条长度相同的绳子,问你这m条绳子每条最长是多少. 二分答案,尤其注意精度问题.我觉 ...

  9. HDU 1551 Cable master

    题解:很显然的二分检索,在算法艺术上看过原题,不过这里要注意精度: #include <cstdio> int n,m; double a[10001]; bool test(double ...

最新文章

  1. VScode 无法创建文件或者无法保存文件
  2. package.json文件||项目依赖||开发依赖
  3. 全面理解SSD和NAND Flash
  4. Java面试题:如何将字符串反转?(翻转字符串)
  5. leetcode 383. 赎金信 思考分析
  6. java 图片阴影_Java 为 PPT 中的图形添加阴影效果
  7. JavaScript自定义滚动条
  8. Python错误:'tuple' object is not callable
  9. 手机图形计算器matlab,科学图形计算器 Mathlab
  10. plc和c语言和cnc,cnc数控编程和plc编程哪个难学
  11. 共有76款 WIKI系统开源软件
  12. Hive_数据建模工具EZDML
  13. 深度学习之图像隐写去除(DDSP模型 Steganography Removal)
  14. 单片机c语言小车转圈,用51单片机编写的智能小车全程前进的C程序
  15. 传真存储转发工作过程
  16. 2022-2028年中国医疗信息化行业深度调研及投资前景预测报告
  17. 2020 豆瓣API使用(代理方法) 解决无key方法 code 104解决方法
  18. 强化学习-蒙特卡罗法
  19. 基于stm32的智能药盒
  20. 大数据Hadoop视频教程

热门文章

  1. crontab 提示 command not found 解决方案
  2. XML序列化和反序列化 以及相关类的写法
  3. C语言经典算法100例-031-判断星期几
  4. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems
  5. Visual Studio.net 2010 Windows Service 开发,安装与调试
  6. Expression Blend 学习视频下载
  7. React Native集成Redux框架讲解与应用
  8. CSS布局说——可能是最全的
  9. 面对SDN/NFV部署挑战 网络厂商能做什么?
  10. Web Service 性能测试工具比较