网线主管

简介: 二分查找的题目 题目链接:http://noi.openjudge.cn/ch0111/04/ 总时间限制: 1000ms     内存限制: 65536kB描述 仙境的居民们决定举办一场程序设计区域赛。

二分查找的题目

题目链接:http://noi.openjudge.cn/ch0111/04/

总时间限制: 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
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 
 6 using namespace std;
 7 const int maxn=10000+10;
 8 int n,m;
 9 int a[maxn],maxa;
10 void solve()
11 {
12     int L=0,R=maxa+1,mid;
13     int ans=0;
14     while(L+1<R){
15         ans=0;
16         mid=(L+R)/2;
17         for(int i=0;i<n;i++)
18             ans+=a[i]/mid;
19         if(ans<m)R=mid;
20         else L=mid;
21     }
22     printf("%.2lf\n",L/100.00);
23 }
24 int main()
25 {
26     cin>>n>>m;
27     maxa=0;
28     double t;
29     for(int i=0;i<n;i++){
30         scanf("%lf",&t);
31         a[i]=t*100;
32         maxa=max(maxa,a[i]);
33     }
34     solve();
35     return 0;
36 }

嗯这个题目是在区间[0,maxa+1]之间进行二分查找。maxa是最长的网线的长度。注意这个题最小单位是厘米,所以干脆在输入数据时直接处理、保存长度是厘米的数据。

对每一个二分的中间点进行检验(假设剪出来的网线长度是mid,那么可以得到多少条网线呢?假设为ans,那么ans是否大于m呢?若是ans小于m则说明剪得太长了,否则说明还可以剪得更长一些。)说的不是很清楚,看代码比较实际点。

 

相关文章
|
关系型数据库 MySQL C++
|
11月前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
存储 SQL 数据可视化
约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
|
存储 SQL Java
实战 | 使用Spring Boot + Elasticsearch + Logstash 实现图书查询检索服务
前面我们介绍了Spring Boot 整合 Elasticsearch 实现数据查询检索的功能,在实际项目中,我们的数据一般存储在数据库中,而且随着业务的发送,数据也会随时变化。 那么如何保证数据库中的数据与Elasticsearch存储的索引数据保持一致呢? 最原始的方案就是:当数据发生增删改操作时同步更新Elasticsearch。但是这样的设计耦合太高。接下来我们介绍一种非常简单的数据同步方式:Logstash 数据同步。
实战 | 使用Spring Boot + Elasticsearch + Logstash 实现图书查询检索服务
新能力丨无需开发,即搜即得,支付宝小程序“服务直达”开放公测
“服务直达”是指用户在支付宝搜索诸如“美甲”、“家政”、“兼职”等服务关键词时,搜索页面将直接呈现具备相关服务功能的小程序。用户点击搜索结果条目,即可进入小程序相关服务页面。
1838 12
新能力丨无需开发,即搜即得,支付宝小程序“服务直达”开放公测
|
JSON 算法 安全
JWT 和 JJWT 的区别?别再傻傻分不清了。。
jwt是什么? JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成,其中名称为字符串,值为任意JSON值。 JWT有助于在clear(例如在URL中)发送这样的信息,可以被信任为不可读(即加密的)、不可修改的(即签名)和URL - safe(即Base64编码的)。
1020 0
JWT 和 JJWT 的区别?别再傻傻分不清了。。
|
人工智能 网络协议 安全
阿里云首席安全科学家吴翰清的思考:弹性安全网络,构建下一代安全的互联网
阿里云首席安全科学家吴翰清:前些天得知自己入选了MIT的TR35,非常开心。我想这是中国安全技术在国际上被认可的一次证明。但这个荣誉不仅属于我一个人,更属于我团队中所有为此做出过努力和贡献的人,也属于那些敢于和我们一起尝试最新技术的客户们,因为新技术在诞生之初往往是生涩的,但缺少了孵化过程中的磨难,我们永远见不到美丽绽放的那天。
10421 1
|
Shell Perl Python
如何优雅的使用GMT绘图(2): 主题风格和数据路径
GMT无疑是一个非常方便且高效的通用绘图软件,尤其是最近更新了**modern**模式,使得科研绘图更简单更高效!GMT默认的绘图风格(通常会用在ppt里)整体上是白底黑字,这更大多数的软件都是一样的。
3183 0
|
编解码
阿里视频云最强转码技术揭秘:窄带高清原理解析+用户接入指南
窄带高清代表的是一种成本与体验最合理配置、最佳性价比的视频服务理念。本文将介绍窄带高清的原理及用户接入指南。
9505 0
|
机器学习/深度学习 人工智能 算法
AI设计师“鲁班”进化史:每秒制作8000张双11海报,没有一张雷同!
在过去,每年双11,设计师们都会开启狂加班模式:做海报、改文字、换商品、调设计、换 banner,每个设计师对接几个运营人员,富士康流水线一样的重复性工作。一年双 11 下来,完成上亿张海报。 然而,这一切正在成为过去。
5974 0