UCloud 机房的网络搭建(找规律 计蒜之道第五场)
来源:互联网 发布:阿里云沙发管家 编辑:程序博客网 时间:2024/05/13 22:28
UCloud 刚刚建立一个新机房,近日正在进行网络搭建。机房内有 nnn 台服务器和 mmm 个分线器,整个机房只有一个网线出口。分线器的作用是将一根网线转换成多根网线。蒜头君也知道每个分线器输出的最大网线根数(不一定要将分线器输出的每根线都用上),问你至少需要使用多少个分线器才能使得每台服务器都有网线可用。
输入格式
第一行输入 n,m(0≤n,m≤100)n,m(0 \le n,m \le 100)n,m(0≤n,m≤100)。
第二行输入包含 mmm 个整数的数组 A(0≤Ai≤10)A(0 \le A_i \le 10)A(0≤Ai≤10) 表示每个分线器输出的最大网线根数。
输出格式
输出最少需要的分线器数量。若不能使得所有服务器都有网线可用,输出一行Impossible
。
样例说明
一共需要 333 个分线器,最大输出根数分别为 7,3,27,3,27,3,2,连接方法如下图所示:
样例输入
10 42 7 2 3
样例输出
3
将分线器从大到小排序,优先用输出根数多的分线器。对于 非零 分线器集合 x1,x2,…xm,能接入的服务器总数为 ∑i=1m(xi−1)+1。
注意处理分线器个数为 0、服务器个数为 0、分线器的输出根数为 0 的情况。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<cstdlib>using namespace std;int a[105];int main(){int n,m;while(~scanf("%d%d",&n,&m)){for(int i=1;i<=m;i++){scanf("%d",&a[i]);}sort(a+1,a+m+1);int mm=m;while(n>1&&mm>0){n=n-a[mm]+1;mm--;}if(n>1)cout<<"Impossible"<<endl;else printf("%d\n",m-mm);}return 0;}
阅读全文
0 0
- UCloud 机房的网络搭建(找规律 计蒜之道第五场)
- 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 计蒜之道 初赛 第一场 阿里的新游戏(找规律,几何,模拟)
- 2017 计蒜之道初赛第5场 UCloud 的安全秘钥(中等)【思维】
- UCloud 机房的网络搭建(解题报告)
- A. UCloud 机房的网络搭建
- 计蒜之道2017第五场
- 2016 计蒜之道 初赛 第一场 青云的机房组网方案(中等)
- 2016 计蒜之道 初赛 第一场 青云的机房组网方案(简单)
- 计蒜之道 2017 初赛 UCloud 的安全秘钥(中等)
- FFMPEG学习【libavutil】:Memory Management(二)
- java内省机制 + 内省是什么 + 内省实现方式 + 和反射的区别
- 深度解读
- 如果想研究hadoop,下面有一个用ECLIPSE运行HADOOP例子
- [经典dp]石子合并
- UCloud 机房的网络搭建(找规律 计蒜之道第五场)
- 构造函数私有化
- 用好搜索引擎
- 不可不知的android开发冷知识7
- Java程序员必备的IntelliJ IDEA插件
- 从源码深入理解java集合(基于jdk1.7)
- PuTTY :Access Denied 解决
- 前端之js-常用正则表达式
- react-router带参数使用Link跳转并取出参数