zoukankan      html  css  js  c++  java
  • 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建

    题目链接: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
    ";
        }
        return 0;
    }





    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 4
    2 7 2 3

    样例输出

    3

  • 相关阅读:
    HTML新解
    关于EF4.1更新数据后的显示问题PagedList
    SQL2008中的XML字段操作,与命名空间相关
    64位Win7+iis7下发布MVC3 web项目
    蓝屏、异常关机操成的 未能加载文件或程序集“....”或它的某一个依赖项。参数错误。
    FreeWriting_12
    FreeWriting_13
    【转】ACE的构建(VC++6.0环境)
    Freewriting_10
    FreeWriting_16
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079768.html
Copyright © 2011-2022 走看看