• UESTC_握手 CDOJ 913


    握手

    Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
     

    一群人参加了一次聚会,其中有一些人是好朋友。一对朋友见面后握手且仅握一次手,并且每个人不会和自己握手(废话!)。现在告诉你每个人一共握了几次手,请你判断是否存在一种朋友关系满足每个人的握手数。

    Input

    输入多组数据,第一行一个数T,表述数据组数。每组数据第一行输入一个数n,表示有n个人参加了聚会,下一行有n个数,didn ,di表示第i个人的握手数。 (1n105 ,输入的所有d之和不超过5×105

    Output

    存在这种朋友关系输出YES,反之NO

    Sample input and output

    Sample InputSample Output
    3
    3
    0 1 1
    3
    2 2 2
    3
    1 1 1
    YES
    YES
    NO

    Source

    2014 UESTC Training for Graph Theory
     
    解题报告:
     即判断是否可图利用Havel-Hakimi定理即可,具体可百度...
     因为p的和不超过5 * 1e5 ,直接暴力模拟即可
     
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <set>
    #include <vector>
    using namespace std;
    const int maxn = 1e5 + 50;
    int d[maxn];
    multiset<int,greater<int> >s;
    vector<int>temp;
    
    int main(int argc,char *argv[])
    {
      int Case;
      scanf("%d",&Case);
      while(Case--)
       {
             int n;
             scanf("%d",&n);
             s.clear();
             for(int i = 1 ; i <= n ; ++ i)
              {
                 int u;
              scanf("%d",&u);
              s.insert(u);    
           }
          int ans = 1;
          for(int i = 1 ; i <= n ; ++ i)
           {
                set<int>::iterator it = s.begin();
                if (*it >= s.size() || *it < 0)
                 {
                    ans = 0;
                 break;    
              }
             int tot = *it;
             temp.clear();
             s.erase(it);
             while(tot)
              {
                   it = s.begin();
                   temp.push_back((*it)-1);
                   tot--;
                   s.erase(it);
              }
             for(int j = 0 ; j < temp.size() ; ++ j)
              s.insert(temp[j]);
           }
          if (ans)
           printf("YES
    ");
          else
           printf("NO
    ");
       }
      return 0;
    }
    No Pain , No Gain.
  • 相关阅读:
    T100——MENU按钮
    vue 打包问题
    Python: 什么是*args和**kwargs
    windows服务器下部署Apache+Flask+Mod_wsgi+Vue
    树莓派 端口被占用的解决方案
    mac 终端命令总结
    Home Assistant 发现小米设备
    树莓派基于Home Assistant 查询在网设备
    Linux 命令集合-vim
    mac上的hassbian 启动报错1
  • 原文地址:https://www.cnblogs.com/Xiper/p/4515697.html
Copyright © 2020-2023  润新知