C 小鑫的城堡

2021-10-04 00:23:56 字數 1276 閱讀 2359

description

從前有乙個國王,他叫小鑫。有一天,他想建一座城堡,於是,設計師給他設計了好多簡易圖紙,主要是房間的連通的圖紙。小鑫希望任意兩個房間有且僅有一條路徑可以相通。小鑫現在把設計圖給你,讓你幫忙判斷設計圖是否符合他的想法。比如下面的例子,第乙個是符合條件的,但是,第二個不符合,因為從5到4有兩條路徑(5-3-4和5-6-4)。

多組輸入,每組第一行包含乙個整數m(m < 100000),接下來m行,每行兩個整數,表示了一條通道連線的兩個房間的編號。房間的編號至少為1,且不超過100000。

output

每組資料輸出一行,如果該城堡符合小鑫的想法,那麼輸出"yes",否則輸出"no"。

sample

input

52 5

2 31 3

3 64 6

61 2

1 33 4

3 55 6

6 4output

yesno

思路:將所有的點都連起來,每輸入一組就進行判斷看這一組之前是不是之前已經連線在並查集裡,如果是則輸出no,還有一組no的情況就是這些點無法連線成連通圖,所以用乙個vis記錄點,看這個點是否輸入過,然後判斷這些點是否為乙個根。

#include

#include

#include

int vis[

100010];

int f[

100010];

void

init()

intgetf

(int v)

}void

merge

(int u,

int v)

}int

main()

else

merge

(u,v);}

for(

int i=

1;i<=

100000

;i++)if

(sum>1)

flag =1;

if(flag ==0)

printf

("yes\n");

else

printf

("no\n");

}return0;

}

小鑫的城堡

提示 這個題主要是要求輸入的每乙個房間的根節點是同乙個 即只有乙個根節點 而且題目給定的通道數m和所需要的數l相等 l 出現房間的個數 乙個房間重複出現多次記為一次 1 include include int a 100005 儲存父根 int b 100005 儲存房間是否出現過 int find...

小鑫的城堡

sdutoj2798 time limit 1000ms memory limit 65536kb submit statistic problem description 從前有乙個國王,他叫小鑫。有一天,他想建一座城堡,於是,設計師給他設計了好多簡易圖紙,主要是房間的連通的圖紙。小鑫希望任意兩個...

小鑫的城堡

time limit 1000ms memory limit 65536kb problem description 從前有乙個國王,他叫小鑫。有一天,他想建一座城堡,於是,設計師給他設計了好多簡易圖紙,主要是房間的連通的圖紙。小鑫希望任意兩個房間有且僅有一條路徑可以相通。小鑫現在把設計圖給你,讓你...