傳送門:小希的迷宮
中文題目不做過多的解釋
輸出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 ...