某種病毒襲擊了某地區,該地區有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 11 2
3 44 5
sample output
**(1)
#includeint f[500000]=,n,m,k,sum=0;
void init()
int getf(int v)
}void merge(int v,int u)
}int main()
for(i=0;i<=n;i++)
printf("%d\n",sum);
return 0;
}
**(2)
#include#include#include#includeusing namespace std;
int fa[50002],a,b,m,n;
void build(int qwq)
int find(const int &x)
bool che(const int &x,const int &y)
void mer(const int &x,const int &y)
int main()
printf("%d\n",ans);
return 0;
}
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...
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 某種病毒襲擊了某地區,該地...
並查集 並查集
本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...