hdu 1272 小希的迷宮 並查集

2021-07-15 11:41:09 字數 865 閱讀 4980

傳送門:小希的迷宮

中文題目不做過多的解釋

輸出yes的條件就是:

1. 只能是乙個樹

2. 樹中不能有環

當然還有乙個特判就是只輸入0,0的時候也輸出yes,當然這個題目的資料弱,考慮重複新增遍的情況,比如輸入3,5和5,3應該是滿足條件的,不判斷也是可以過的

#include

#include

const

int maxn = 100005;

int pre[maxn];

int tmp[maxn];

int vis[maxn];

int find(int x)

bool join(int x,int y)

int main()

memset(vis,false,sizeof vis);

vis[a] = true,vis[b] = true;

memset(tmp,0,sizeof tmp);

for(int i=0;i<=maxn;i++) pre[i] = i;

flag = false;

if(!join(a,b)) flag = true;

while(scanf("%d%d",&a,&b) && a && b)

int ans = 0;

for(int i=1;i<=maxn;i++)//判斷聯通情況

if(vis[i] && pre[i] == i) ans++;

if(!flag && ans == 1) printf("yes\n");

else

printf("no\n");

}return

0;}

hdu 1272 小希的迷宮(並查集)

題意 略分析 由於是無向圖且是一棵樹,也就是n個節點,n 1條邊,題目要求是每個定點都是雙連通,也就是所有頂點都在乙個強連通分量裡面,這裡可以使用求ssc的演算法,但是由於十無向圖使用並查集的變成複雜度降低了很多,trick 0 0 no.code include include include i...

HDU 1272 小希的迷宮(並查集)

小希的迷宮 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit go back status description 上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓ga...

HDU1272 小希的迷宮 並查集

題目大意 給出乙個迷宮,如果他是連通的且沒有平行路徑,輸出yes,否則輸出no。並查集紀錄每個點的連通狀態,對於每輸入的兩個點,合併他們的同時,看他們是否有相同的父親,若有,則不符合題意。資料輸入完之後,再判斷一下根結點是否唯一便可知該迷宮是否連通了。include include include ...