並查集(2)病毒

2021-09-02 14:11:33 字數 1058 閱讀 9312

某種病毒襲擊了某地區,該地區有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 ...