|NOIOJ|二分|04:网线主管

原创 2016年05月31日 19:10:27
描述

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

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

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

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

输入
第一行包含两个整数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、由于精度问题,把输入数据*100放入整数数组

2、r要在最长电线上+1,因为会出现整条电线用完的情况

Ps:WA了几次就因为这两问题。

参考代码:

#include<cstdio>
int n,k; 
int a[10200];
int l=0, mid, r=0;
void init() {
	scanf("%d%d", &n, &k);
	for (int i=1;i<=n;i++) {
		double t;
		scanf("%lf", &t);
		a[i] = (float)(t*100.0);
		if (a[i]>r) r=a[i];
	} 
	r++;
}
int check(int x) {// 比f多 return 1
	int ans=0;
	for (int i=1;i<=n;i++) {
		ans += a[i] / x;
	}
	if (ans>=k) return 1; else return 0; 
}
void go() {
	while (l+1<r) {
		mid = (l+r)/2;
		if (check(mid)) l=mid; else r=mid;
	}
	printf("%.2lf", l / 100.0); 
}
int main() {	
	init();
	go();
	return 0;
}


版权声明:博客停更,请到"再见,CSDN"文章中找新博客地址 举报

相关文章推荐

OpenJudge 1.11-04 网线主管

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

OpenJudge_P0066 网线主管

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

树莓派第一次使用(笔记本+网线)

第一次使用树莓派,用网线与笔记本相连,通过Windows远程桌面操作树莓派。
  • Tavox
  • Tavox
  • 2017-04-30 10:40
  • 335

用光纤还是用网线 光纤局域网设备导购

无论是企业还是个人在网络布线的时候都认为光纤的应用成本太高,使用不划算的。其实我们要明确一点铜缆虽便宜,但不是万能的。当厂房、车间、仓库与办公室,机房间隔距离太大的情况下,是不得不使用光缆的因为普通的...

tcp socket 网线断开判断

[喝小酒的网摘]http://blog.const.net.cn/a/17107.htm 有些网络应用在网线断开后重新连上的情况下 tcp socket 连接保持 ESTABLISH 状态不变, ...

一条网线,不用路由器,多台笔记本电脑共享上网

1、首先,选择其中一台笔记本电脑作为主机,该主机需要正常的与网线连接,即可以正常的上网。 打开主机的 “网络连接”,选择“无线网络连接”,右键打开属性对话框,在“常规”选项卡下,双击“TCP/I...

mii-tool 判断网线有无插好

mii-tool 更改网络接口协商的方法; [root@localhost ~]# mii-tool --helpusage: mii-tool [-VvRrwl] [-A media,... | -...
  • 0210
  • 0210
  • 2011-06-20 16:26
  • 447

国标网线制作方法

第七代系统使用国标直通线,两种标准都可用 RJ-45连接器的线排列有两种方法,分别是568B和568A,我们常用 568B方式,排列见下图:    实际上在10M 100M网络中,仅仅使用12 ...

虚拟机安装CentOS6.4用“桥接:直接连接到物理网线”不能上网的原因及解决方法

最近在Win7下的虚拟机中安装CentOS6.4,安装完后,网络设置成NAT时可以正常上网,但是与主机的物理网络不在一个IP段上,这样对所要的测试不利,所以就想着设置成“桥接:直接连接到物理网络”,使...

ROS 连接SICK LMS100激光,并用RVIZ显示(网线端口)

一样,先上图 1.去https://github.com/clearpathrobotics/lms1xx.git下载*.z...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)