HDU 1272 小希的迷宫 (判断是否为树)

题意:其实就是让你判断一个图是否为树,要求不能有孤立的点(没有这中情况),且只能有1个连通图,且边数+1=点数,且每个点都有边(不可能只有1个点出现)。

思路:有可能出现连续的4个0,也就是有测试例子是完全没有点的,也没有边,要打印Yes!记录下所有点(去重),记录下每个点的度数,如果有n个点,n-1条边,且每点都是有边连着的,再判断其只有一个连通图就行了。因为只有n-1条边,所以当只有一个连通图时,必不会有环的产生。

判断是否只有一个连通图的方法:

(1)BFS

(2)DFS

(3)并查集

(4)prim、kruscal生成一个树,所有点和所有边都要用上。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=100005;
 4 const int mod=0x7f7f7f7f;
 5 int num[N];
 6 /*
 7 仅仅靠边数+点数来断定是否为树,应该是错的。测试数据:
 8     1 2 3 4
 9     3 5 4 5
10     0 0
11 */
12 int main()
13 {
14     freopen("e://input.txt", "r", stdin);
15     int n, a, b;
16     while(1)
17     {
18         memset(num,0,sizeof(num));
19         int cnt=0, siz=0;
20         while(scanf("%d%d",&a,&b),a+b>0)
21         {
22             if(!num[a])
23             {
24                 siz++;    //点数
25                 num[a]++;
26             }
27             if(!num[b])
28             {
29                 siz++;
30                 num[b]++;
31             }
32             cnt++;  //边数
33         }
34         if(a==-1 && b==-1)    break;
35         if(!cnt||cnt+1==siz)    printf("Yes\n");
36         else            printf("No\n");
37
38     }
39     return 0;
40 }

AC的错误代码

时间: 2024-10-31 10:30:15

HDU 1272 小希的迷宫 (判断是否为树)的相关文章

【并查集】hdu 1272 小希的迷宫

[并查集]hdu 1272 小希的迷宫 并查集--并查集森林无环且连通 题目大意 给你连接关系构造一个图,判断图是否无环且满足连通性. 说一下思路 ①有无环:(a,b)元素a.b根节点是否相同,相同合并边就会成环,不满足题目要求 ②连通性:记录之前出现的节点,统计最后根节点==自身的节点个数,正好是1才是一片连通森林! ★再以后并查集初始化 i < _max,这道题有等号就WA了,不知道为什么??!!! 参考代码 //#pragma comment(linker, "/STACK:1024

HDU 1272 小希的迷宫(并查集,判断是否成环)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41583    Accepted Submission(s): 12822 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该

HDU 1272 小希的迷宫 (并查集)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27851    Accepted Submission(s): 8613 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是

hdu 1272 小希的迷宫(简单并查集)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31396    Accepted Submission(s): 9726 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是

hdu 1272 小希的迷宫(并查集/附爆栈的原因)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33194    Accepted Submission(s): 10214 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该

HDU 1272 小希的迷宫(乱搞||并查集)

小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路).小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路.比如下面的例子,前两

HDU 1272 小希的迷宫【并查集】

解题思路:将给出的点都合并之后,判断是否同时满足两个条件1 只构成一棵树2 这棵树上没有环需要注意的是 输入 0 0的时候输出"Yes",即空树也是树             对于只含有一个节点的树,也是一棵树 例如输入 2 2  0 0,0 0为输入的终止,2 2构成一棵只含节点2的树 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm

HDU - 1272 小希的迷宫(简单并查集)

小希的迷宫 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了

&lt;hdu - 1272&gt; 小希的迷宫 并查集问题 (注意特殊情况)

 本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头