當兩台計算機雙向連通的時候,檔案是可以在兩台機器間傳輸的。給定一套計算機網路,請你判斷任意兩台指定的計算機之間能否傳輸檔案?
首先在第一行給出網路中計算機的總數 n (2≤n≤104 ),於是我們假設這些計算機從 1 到 n 編號。隨後每行輸入按以下格式給出:
i c1 c2
其中i表示在計算機c1和c2之間加入連線,使它們連通;或者是
c c1 c2
其中c表示查詢計算機c1和c2之間能否傳輸檔案;又或者是
s這裡s表示輸入終止。
對每個c開頭的查詢,如果c1和c2之間可以傳輸檔案,就在一行中輸出"yes",否則輸出"no"。當讀到終止符時,在一行中輸出"the network is connected.「如果網路中所有計算機之間都能傳輸檔案;或者輸出"there are k components.」,其中k是網路中連通集的個數。
5c 3 2
i 3 2
c 1 5
i 4 5
i 2 4
c 3 5sno
noyes
there are 2 components.
5c 3 2
i 3 2
c 1 5
i 4 5
i 2 4
c 3 5
i 1 3
c 1 5sno
noyes
yesthe network is connected.
並查集演算法,要注意連通集數大於一是要輸出連通集數量
#include
using
namespace std;
#define maxn 10010
int pa[maxn]
;int
find
(int x)
void
unio
(int x,
int y)
intmain()
else
if(ch==
'i')
unio
(v1,v2)
;else
if(ch==
's')
getchar()
;}return0;
}
7 12 檔案傳輸(25 分)
n 2 於是我們假設這些計算機從 1 到 n 編號。隨後每行輸入按以下格式給出 i c1 c2c c1 c2s5 c 3 2 i 3 2 c 1 5 i 4 5 i 2 4 c 3 5 sno noyes there are 2 components.5 c 3 2 i 3 2 c 1 5 i 4 ...
7 32 檔案傳輸 (25 分)
7 32 檔案傳輸 25 分 當兩台計算機雙向連通的時候,檔案是可以在兩台機器間傳輸的。給定一套計算機網路,請你判斷任意兩台指定的計算機之間能否傳輸檔案?首先在第一行給出網路中計算機的總數 n 2 n 10 4 於是我們假設這些計算機從 1 到 n 編號。隨後每行輸入按以下格式給出 i c1 c2其...
並查集 7 2 檔案傳輸(25 分)
首先在第一行給出網路中計算機的總數 n 2 n 10 4 於是我們假設這些計算機從 1 到 n 編號。隨後每行輸入按以下格式給出 i c1 c2其中i表示在計算機c1和c2之間加入連線,使它們連通 或者是 c c1 c2其中c表示查詢計算機c1和c2之間能否傳輸檔案 又或者是 s這裡s表示輸入終止。...