总时间限制: 
1000ms 
内存限制: 
65536kB
描述

仙境的居民们决定举办一场程序设计区域赛。裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛。他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器。为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器周围放置。

为购买网线,裁判委员会联系了当地的一个网络解决方案提供商,要求能够提供一定数量的等长网线。裁判委员会希望网线越长越好,这样选手们之间的距离可以尽可能远一些。

该公司的网线主管承接了这个任务。他知道库存中每条网线的长度(精确到厘米),并且只要告诉他所需的网线长度(精确到厘米),他都能够完成对网线的切割工作。但是,这次,所需的网线长度并不知道,这让网线主管不知所措。

你需要编写一个程序,帮助网线主管确定一个最长的网线长度,并且按此长度对库存中的网线进行切割,能够得到指定数量的网线。

输入
第一行包含两个整数N和K,以单个空格隔开。N(1 <= N <= 10000)是库存中的网线数,K(1 <= K <= 10000)是需要的网线数量。
接下来N行,每行一个数,为库存中每条网线的长度(单位:米)。所有网线的长度至少1m,至多100km。输入中的所有长度都精确到厘米,即保留到小数点后两位。
输出
网线主管能够从库存的网线中切出指定数量的网线的最长长度(单位:米)。必须精确到厘米,即保留到小数点后两位。
若无法得到长度至少为1cm的指定数量的网线,则必须输出“0.00”(不包含引号)。
样例输入
4 11
8.02
7.43
4.57
5.39
样例输出
2.00
思路:看到这个题第一眼看到小数就感觉好烦啊...而且float数组感觉也怪怪的,于是存进数组的时候就给它乘了个100,大不了输出的时候再除以100,然后数组长度就和题目一样s[10000],因为输入是小数,所以定义x,然后乘100放到数组s里面,同时输入的时候记录最长的那根线max,为什么要记录呢,因为不是要找能够截到的最长的咩,要是你找最短的可能最长的那根能截出来好几根比短的要长的。所以看最长的那根,然后用二分法,从一半开始看,比如我最长100米,然后一半是五十,我能截两个五十,然后看其他的能截多少,要是满足客户需要的那些,我们就让他变长一点,不行就短一点,具体的话就看代码好啦。
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<iomanip>
using namespace std;
int main()
{   int n,k,max=0,l=0,r=0,mid,ans;//n:接下来n个每条网线的长度,k需要的数量//max记录当前所有网线中的最大值,l,r代表整个区间的左界和右界,int s[10000]; double x;cin>>n>>k;for(int i=0;i<n;i++){cin>>x;s[i]=x*100;//这里不用小数存放 所以乘以100 最后输出是米 所以要除以100 if(max<s[i])max = s[i];  }   r =max+1;//区间为[1,r] while(l+1<r){ans = 0;mid =(l+r)/2;for(int i=0;i<n;i++){ans +=s[i]/mid;}if(ans>=k) l=mid;else r = mid;}cout<<fixed<<setprecision(2)<<l*1.0/100;
}

Openjudge NOI题库1.11编程基础之二分查找04 网线管理相关推荐

  1. openjudge1.11编程基础之二分查找 04:网线主管

    04:网线主管 总时间限制: 1000ms 内存限制: 65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑 ...

  2. 1.11编程基础之二分查找 04:网线主管

    04:网线主管 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心 ...

  3. OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支

    OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支 OpenJudge - OpenJudge - 题目 啊哈C语言 第11讲 4.1.4_01判断数正负 啊哈C语言 第11讲 4 ...

  4. OpenJudge NOI题库 1.5编程基础之循环控制

    OpenJudge NOI题库 1.5编程基础之循环控制 OpenJudge - OpenJudge - 题目 1.5_01求平均年龄 1.5_01求平均年龄_哔哩哔哩_bilibili 1.5_02 ...

  5. OpenJudge NOI题库 1.7 编程基础之字符串

    OpenJudge NOI题库 1.7 编程基础之字符串 OpenJudge - OpenJudge - 题目 1.7_01统计数字字符个数 1.7_01统计数字字符个数_哔哩哔哩_bilibili ...

  6. OpenJudge NOI题库 1.1 编程基础之输入输出

    OpenJudge NOI题库 1.1编程基础之输入输出 OpenJudge - OpenJudge - 题目 1.1_01:Hello, World!_2017-03-19(C++语言) 1.1_0 ...

  7. Openjudge NOI题库1.7编程基础之字符串 34:回文子串

     总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccde ...

  8. 1.11 编程基础之二分查找 08 不重复地输出数 python

    http://noi.openjudge.cn/ch0111/08/ """ 1.11 编程基础之二分查找 08 不重复地输出数 http://noi.openjudge ...

  9. 1.9 编程基础之二分查找 12 最长平台 python

    http://noi.openjudge.cn/ch0109/12/ """1.9 编程基础之二分查找 12 最长平台 http://noi.openjudge.cn/c ...

最新文章

  1. 根据gtf格式的基因注释文件得到人所有基因的染色体坐标
  2. JAVA操作MYSQL数据库
  3. python学习:time、unixtime、string的转换
  4. 产品分析:岛APP,青年文化拍了拍社交赛道
  5. shell脚本实现命令的自动执行
  6. Hibernate Validator JSR303示例教程
  7. 最简单的php导出excel文件方法
  8. [2019BUAA软工]第0次代码作业
  9. 深入理解计算机系统(第二版)第四章知识整理
  10. 后端思想篇:设计好接口的36个锦囊!
  11. WPF 布局 - Grid, StackPanel, DockPanel, WrapPanel
  12. Citrix_XenServer-6.1安装过程详解
  13. 前向差分、后向差分和中心差分误差分析
  14. 干货,分享kali安装arpspoof,以及常见错误问题,结尾附上局域网arp断网攻击
  15. the work directory /tmp/ oracle,Oracle升级问题总结
  16. 【苹果推imessage源码】邮箱软件安装PHAssetCollection
  17. 树莓派使用cgminer挖矿测试
  18. 长时储能系统-未来储能系统发展方向
  19. 数据库级联操作mysql_数据库进阶实践-级联操作 --
  20. 微信投屏服务器错误啥意思,投屏时候弹出微信消息很可怕?ColorOS TV轻松解决问题...

热门文章

  1. 每天一本电子书 - JavaScript for Kids: A Playful Introduct
  2. 前端学习笔记3-CSS入门一
  3. 怎么解决包冲突--删除EE5中的jar
  4. 2019海南大学计算机研究生分数线,2019海南大学研究生分数线(含2016-2019历年复试)...
  5. 理解COM套间(第一部分)
  6. 视频教程-YOLOv4目标检测实战:人脸口罩佩戴检测-计算机视觉
  7. 爱奇艺------AI在爱奇艺视频广告中的探索
  8. 2017中国云计算行业年度盘点:黑马崛起,强者恒强
  9. UGUI和IMGUI制作血条
  10. 华为MA5616---VDSL配置指导