博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
阅读量:7081 次
发布时间:2019-06-28

本文共 1188 字,大约阅读时间需要 3 分钟。

题目链接:https://nanti.jisuanke.com/t/15766

文章最后给出了题目的完整描述,也可点击链接查看题目。

官方题解:https://www.jisuanke.com/article/9v3lgyb4

这应该是一道简单题,但是需要考虑到几组特例 ( ▼-▼ ) 很多人WA在特例上

我的思路:

  • 先按照每个分线器输出的最大网线根数降序排列
  • 不考虑特列的情况下,实际连接服务器的网线根数 = 使用的分线器网线根数之和 - 使用的分线器个数 - 1
  • n==0时,即服务器数量为0,此时不需要分线器,即需要的分线器数量为0
  • n==1时,即仅有一台服务器,此时这台服务器直接连接网线即可,不需要分线器,需要的分线器数量为0

#include
#include
using namespace std;int main(){ int n,m; cin>>n>>m; int a[101]; for(int i=0; i
>a[i]; sort(a,a+m,greater
()); //降序 if(n==0 || n==1) //n等于0时,即服务器数量为0,此时不需要分线器。n等于1时,即仅有一台服务器,此时这台服务器直接连接网线即可,不需要分线器。 cout<<0<
= n){ //实际连接服务器的网线根数 cout<
<

UCloud 刚刚建立一个新机房,近日正在进行网络搭建。机房内有 

nn 台服务器和 mm 个分线器,整个机房只有一个网线出口。分线器的作用是将一根网线转换成多根网线。蒜头君也知道每个分线器输出的最大网线根数(不一定要将分线器输出的每根线都用上),问你至少需要使用多少个分线器才能使得每台服务器都有网线可用。

输入格式

第一行输入 n,m(0 \le n,m \le 100)n,m(0n,m100)

第二行输入包含 mm 个整数的数组 A(0 \le A_i \le 10)A(0Ai10) 表示每个分线器输出的最大网线根数。

输出格式

输出最少需要的分线器数量。若不能使得所有服务器都有网线可用,输出一行Impossible

样例说明

一共需要 33 个分线器,最大输出根数分别为 7,3,27,3,2,连接方法如下图所示:

样例输入

10 42 7 2 3

样例输出

3

转载于:https://www.cnblogs.com/Genesis2018/p/9079768.html

你可能感兴趣的文章
Python学习笔记(2)--Python的安装
查看>>
使用cygwin/openSSH搭建windows下的SSH服务器
查看>>
Ubuntu里网卡IP设置的步骤&/etc/passwd文件
查看>>
Windows系统中 五大免费开源的SVN工具
查看>>
排序规则引起的冲突问题
查看>>
我的友情链接
查看>>
onTouch事件传递机制
查看>>
那些年的坑--双精度数值转成整形
查看>>
office 2007各种格式附件下载后变成zip文件问题解决方法
查看>>
宽依赖、窄依赖
查看>>
好程序员web前端系列之CSS3-3D
查看>>
xm 命令详解
查看>>
HttpClient4.x send json request
查看>>
mysql5.6基于GTID的主从复制
查看>>
iOS 获取Wifi的SSID及MAC地址
查看>>
认识六个被误解的Ruby特性
查看>>
Java线程:并发协作-生产者消费者模型
查看>>
libvirt API非阻塞调用及相关的原理分析
查看>>
老男孩第十四期Python学习班之Day06
查看>>
更改sql 数据库 SA密码 找不到sp_password存储过程
查看>>