码迷,mamicode.com
首页 > 其他好文 > 详细

徐州联赛选拔赛 - 判断能否构成树

时间:2016-04-11 20:54:15      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

题目链接

思路:每条边对总度的贡献都是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 }

 

徐州联赛选拔赛 - 判断能否构成树

标签:

原文地址:http://www.cnblogs.com/iRedBean/p/5379692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!