zoukankan      html  css  js  c++  java
  • 徐州联赛选拔赛 判断能否构成树

    题目链接

    思路:每条边对总度的贡献都是2,所以如果形成了一棵树,那么边一定是n-1条,总度就是2(n-1)。先把所有顶点的度加起来,判断是否等于2(n-1),如果不等,那一定就是Impossible了。但是相等就能断定能形成一棵树吗?来看看下面这个图

    存在一个度为0的顶点,肯定就不能形成树咯。所以判断一下是否存在度为0的顶点就好了,注意只有一个顶点也是树哦。

    AC代码:

     1 #include <cstdio>
     2  
     3 int main()
     4 {
     5     int t, n, v;
     6     scanf("%d", &t);
     7     while (t--)
     8     {
     9         scanf("%d", &n);
    10         int sum = 0;
    11         bool zero = false;
    12         for (int i = 0; i < n; i++)
    13         {
    14             scanf("%d", &v), sum += v;
    15             if (v == 0)
    16                 zero = true;
    17         }
    18         if (n == 1 && zero)
    19             puts("Possible");
    20         else if (sum == n + n - 2 && !zero)
    21             puts("Possible");
    22         else
    23             puts("Impossible");
    24     }
    25     return 0;
    26 }
  • 相关阅读:
    函数响应式编程
    RxSwift
    Swift 5.1 新语法
    MVVM
    SwiftUI 九
    SwiftUI 八
    SwiftUI制作View可嵌套组件
    Swift 5.1 新语法
    MVVM
    Linux系统修改hostname,不用重启
  • 原文地址:https://www.cnblogs.com/iRedBean/p/5379692.html
Copyright © 2011-2022 走看看