病毒
time limit: 1000 ms memory limit: 65536 k
total submit: 2403(620 users) total accepted: 818(542 users) rating: special judge: no
description
某種病毒襲擊了某地區,該地區有n(1≤n≤50000)人,分別編號為0,1,…,n-1,現在0號已被確診,所有0的直接朋友和間接朋友都要被隔離。例如:0與1是直接朋友,1與2是直接朋友,則0、2就是間接朋友,那麼0、1、2都須被隔離。現在,已查明有m(1≤m≤10000)個直接朋友關係。如:0,2就表示0,2是直接朋友關係。
請你程式設計計算,有多少人要被隔離。
input
第一行包含兩個正整數n(1≤n≤50000),m(1≤m≤100000),分別表示人數和接觸關係數量;
在接下來的m行中,每行表示一次接觸,;
每行包括兩個整數u, v(0 <= u, v < n)表示乙個直接朋友關係。
output
輸出資料僅包含乙個整數,為共需隔離的人數(包含0號在內)。
sample input
100 4
0 1
1 2
3 4
4 5sample output
3
#include
#include
int z[60001];
int find(int x)
return r;
}void
join(int a,int b)//join函式建立各個點之間的從屬關係
}int main()
for(i=0; i//輸入關係
int boss=find(0);
sum=0;
for(j=0; jif(find(j)==boss)//當找到的上級與感染源相等時,感染人數加一
}printf("%d\n",sum);
}return
0;}
HRBUST 1073 病毒 (並查集)
病毒 time limit 1000 ms memory limit 65536 k total submit 3578 872 users total accepted 1202 759 users rating special judge no description 某種病毒襲擊了某地區,該地...
hrbust 1073 病毒(並查集入門)
病毒 time limit 1000 ms memory limit 65536 k total submit 2403 620 users total accepted 818 542 users rating special judge no description 某種病毒襲擊了某地區,該地區...
hrbust 病毒 並查集
找不到題號了 description 某種病毒襲擊了某地區,該地區有n 1 n 50000 人,分別編號為0,1,n 1,現在0號已被確診,所有0的直接朋友和間接朋友都要被隔離。例如 0與1是直接朋友,1與2是直接朋友,則0 2就是間接朋友,那麼0 1 2都須被隔離。現在,已查明有m 1 m 100...