hdu 小希的迷宫

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272

思路:用并查集来判断是否都在一个集合里面,是否成环   (ps:今天头好晕...)

代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <math.h>
 4 #include <limits.h>
 5 #include <algorithm>
 6 #include <iostream>
 7 #include <ctype.h>
 8 #include <iomanip>
 9 #include <queue>
10 #include <map>
11 #include <stdlib.h>
12 using namespace std;
13
14 int f[100010],mark[100010];
15
16 int find(int x)
17 {
18     if(x==f[x])
19         return f[x];
20     f[x]=find(f[x]);
21     return f[x];
22 }
23
24 bool Union(int x,int y)
25 {
26     int a=find(x);
27     int b=find(y);
28     if(a!=b){
29         f[a]=b;
30         return true;
31     }
32     return false;
33 }
34
35 int main()
36 {
37     int a,b,i,p,count;
38     while(scanf("%d%d",&a,&b)&&(a!=-1&&b!=-1)){
39         count=0,p=1;
40         if(a==0&&b==0){
41             printf("Yes\n");
42             continue;
43         }
44         for(i=0;i<100010;i++){
45             f[i]=i;mark[i]=0;
46         }
47         while(a||b){
48             mark[a]=1,mark[b]=1;
49             if(Union(a,b)==false)
50                 p=0;
51             scanf("%d%d",&a,&b);
52         }
53         if(p==0)
54             printf("No\n");
55         else{
56             for(i=0;i<100010;i++)
57                 if(mark[i]&&f[i]==i)
58                     count++;
59                 if(count==1)
60                     printf("Yes\n");
61                 else
62                     printf("No\n");
63         }
64     }
65 }
时间: 2024-11-08 10:41:26

hdu 小希的迷宫的相关文章

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

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

HDU ACM 1272 小希的迷宫

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31911    Accepted Submission(s): 9850 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): 25010    Accepted Submission(s): 7683 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 小希的迷宫(并查集,判断是否成环)

小希的迷宫 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 小希的迷宫(乱搞||并查集)

小希的迷宫 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