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

hdu1272小希的迷宫(并查集判断回路和是否连通)

时间:2018-11-20 21:12:24      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:eve   hide   space   style   小希的迷宫   ems   cli   alt   scanf   

传送门

迷宫中不能有回路,还要连通

如果最后集合数是一个那就是连通,否则不联通

要合并的两个顶点在相同集合内,表示出现了回路

输入时注意一下

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[100005];
 4 int getf(int v)
 5 {
 6     if(f[v]==v)return v;
 7     else
 8     {
 9         f[v]=getf(f[v]);
10         return f[v];
11     }
12 }
13 void merge(int v,int u)
14 {
15     int t1,t2;
16     t1=getf(v);
17     t2=getf(u);
18     if(t1!=t2)
19     {
20         f[t2]=t1;
21         
22     }
23     return;
24 }
25 void init()
26 {
27     for(int i=1; i<100005; i++)
28     {
29         f[i]=i;
30     }
31 }
32 int data[100005];
33 int main()
34 {
35     int x,y,num=0,maxx=-1,ans=0,flag=0;
36     memset(data,0,sizeof(data));
37     init();
38     while(scanf("%d %d",&x,&y))
39     {
40         if(x==-1&&y==-1)break;
41         if(x!=0&&y!=0)
42         {
43             if(getf(x)==getf(y))flag=1;
44             data[x]=x;
45             data[y]=y;
46             merge(x,y);
47             //int temp=x>y?x:y;
48         //    maxx=maxx>temp?maxx:temp;
49         }
50         if(x==0&&y==0)
51         {
52             for(int i=1; i<=100005; i++)
53             {
54                 if(data[i])
55                 {
56                     if(getf(i)==i)ans++;
57                 }
58             }
59             if(flag||ans>1)
60             {
61                 printf("No\n");
62             }
63             else
64             {
65                 printf("Yes\n");
66             }
67             num=0,maxx=-1,ans=0,flag=0;
68             memset(data,0,sizeof(data));
69             init();
70         }
71     }
72     return 0;
73 }
View Code

 

hdu1272小希的迷宫(并查集判断回路和是否连通)

标签:eve   hide   space   style   小希的迷宫   ems   cli   alt   scanf   

原文地址:https://www.cnblogs.com/fqfzs/p/9991546.html

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