2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
来源:互联网 发布:知乎每日精选 rss 编辑:程序博客网 时间:2024/05/17 22:09
题目链接:https://nanti.jisuanke.com/t/15766
文章最后给出了题目的完整描述,也可点击链接查看题目。
官方题解:https://www.jisuanke.com/article/9v3lgyb4
这应该是一道简单题,但是需要考虑到几组特例 ( ▼-▼ ) 很多人WA在特例上
我的思路:
- 先按照每个分线器输出的最大网线根数降序排列
- 不考虑特列的情况下,实际连接服务器的网线根数 = 使用的分线器网线根数之和 - 使用的分线器个数 - 1
- n==0时,即服务器数量为0,此时不需要分线器,即需要的分线器数量为0
- n==1时,即仅有一台服务器,此时这台服务器直接连接网线即可,不需要分线器,即需要的分线器数量为0
#include<iostream>#include<algorithm>using namespace std;int main(){ int n,m; cin>>n>>m; int a[101]; for(int i=0; i<m; ++i) cin>>a[i]; sort(a,a+m,greater<int>()); //降序 if(n==0 || n==1) //n等于0时,即服务器数量为0,此时不需要分线器。n等于1时,即仅有一台服务器,此时这台服务器直接连接网线即可,不需要分线器。 cout<<0<<endl; else{ int mount=0; bool flag=true; for(int i=0; i<m; ++i){ mount += a[i]; //前i个分线器网线根数之和 if((mount-i) >= n){ //实际连接服务器的网线根数 cout<<i+1<<endl; flag=false; //所有服务器都有网线可用,跳出循环,改变标记状态 break; } } if(flag) //循环结束后,不能使得所有服务器都有网线可用。因为若循环时检测到所有服务器都有网线可用的情况,则标记状态会改 cout<<"Impossible\n"; } return 0;}
UCloud 刚刚建立一个新机房,近日正在进行网络搭建。机房内有
n 台服务器和 m 个分线器,整个机房只有一个网线出口。分线器的作用是将一根网线转换成多根网线。蒜头君也知道每个分线器输出的最大网线根数(不一定要将分线器输出的每根线都用上),问你至少需要使用多少个分线器才能使得每台服务器都有网线可用。
输入格式
第一行输入 n,m(0≤n,m≤100)。
第二行输入包含 m 个整数的数组 A(0≤Ai≤10) 表示每个分线器输出的最大网线根数。
输出格式
输出最少需要的分线器数量。若不能使得所有服务器都有网线可用,输出一行Impossible
。
样例说明
一共需要 3 个分线器,最大输出根数分别为 7,3,2,连接方法如下图所示:
样例输入
10 42 7 2 3
样例输出
3
阅读全文
0 0
- 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
- 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建(贪心)
- 2017 计蒜之道 初赛 第五场——A. UCloud 机房的网络搭建
- 2017计蒜之道初赛第五场-UCloud 机房的网络搭建
- UCloud 机房的网络搭建(找规律 计蒜之道第五场)
- [Hash] 2017 计蒜之道 初赛 第五场 UCloud 的安全秘钥
- [hash+随机] 2017 计蒜之道初赛第五场UCloud 的安全秘钥
- 2017 计蒜之道 初赛 第五场 B. UCloud 的安全秘钥(简单)(暴力)
- 2017 计蒜之道 初赛 第五场 D UCloud 的安全秘钥(困难)[Hash]
- 2017 计蒜之道初赛第5场 UCloud 的安全秘钥(中等)【思维】
- 2017 计蒜之道初赛第五场题解
- 2017 计蒜之道 初赛 第五场@
- 2017计蒜之道程序设计大赛初赛第五场
- 2017计蒜之道程序设计大赛初赛第五场
- 2017 计蒜之道 初赛 第五场
- UCloud 的安全秘钥(哈希表 计蒜之道第五场)
- A. UCloud 机房的网络搭建
- 2017 计蒜之道 初赛 第三场 A+B
- 绘制caffe中的prototxt网络结构图
- hihocoder1121 二分图一•二分图判定
- maven持续集成本地搭建私有仓储
- 二分图最佳完美匹配——KM算法总结
- Eclipse报错: Failed to get the required ADT version number from the SDK
- 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
- Ubuntu下安装R,升级R版本,安装Rstudio,安装Rstudio Server以及安装Shiny Server
- C语言--模拟栈(使用链表)
- TCP长连接,短链接,双工,单工
- Python入门教程(更新中,日期:20170710)
- mariaDB语句详解
- 瀑布流分页数据去重问题
- 单点登录原理与简单实现
- eclipse(2)------Attribute "xmlns" was already specified for element "web-app"