zoukankan      html  css  js  c++  java
  • hdu 2454 Degree Sequence of Graph G

    Problem - 2454

      模拟,利用图的性质,将当前度数最大的点(假设度数为d(x))删除的同时,把紧接着的前d(x)大的度数分别减一。如果最终可以全部相消,那么就是一个简单图,否则不是。

    View Code
     1 #include <cstdio>
     2 #include <iostream>
     3 #include <algorithm>
     4 #include <set>
     5 #include <stack>
     6 
     7 #define REP(i, n) for (int i = 0; i < (n); i++)
     8 using namespace std;
     9 
    10 multiset<int> cnt;
    11 stack<int> tmp;
    12 
    13 int main() {
    14     int T, n, x;
    15     cin >> T;
    16     while (T-- && cin >> n) {
    17         int sum = 0;
    18         cnt.clear();
    19         REP(i, n) {
    20             cin >> x;
    21             if (x) cnt.insert(x);
    22             sum += x;
    23         }
    24         if ((sum & 1) || *cnt.rbegin() >= n) {
    25             puts("no");
    26         } else {
    27             while (true) {
    28                 if (cnt.size() == 0) {
    29                     puts("yes");
    30                     break;
    31                 }
    32                 if (cnt.size() == 1) {
    33                     puts("no");
    34                     break;
    35                 }
    36                 int mx = *cnt.rbegin();
    37                 cnt.erase(cnt.find(mx));
    38                 if (mx > cnt.size()) {
    39                     puts("no");
    40                     break;
    41                 }
    42                 int t;
    43                 while (!tmp.empty()) tmp.pop();
    44                 REP(i, mx) {
    45                     t = *cnt.rbegin();
    46                     if (t > 1) tmp.push(t - 1);
    47                     cnt.erase(cnt.find(t));
    48                 }
    49                 while (!tmp.empty()) {
    50                     cnt.insert(tmp.top());
    51                     tmp.pop();
    52                 }
    53             }
    54         }
    55     }
    56     return 0;
    57 }

    ——written by Lyon

  • 相关阅读:
    hdu 1021
    hdu 1231 最大连续和
    hdu 1421 DP
    日记本开发
    hdu 2570 贪心
    hdu 2102 BFS
    hdu 1312 DFS
    奇葩的数组越界
    AngularJS 工具方法以及AngularJS中使用jQuery
    AngularJS $scope里面的$apply方法和$watch方法
  • 原文地址:https://www.cnblogs.com/LyonLys/p/hdu_2454_Lyon.html
Copyright © 2011-2022 走看看