傳送門
在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。
輸入格式:
輸入在第一行給出乙個正整數n(≤10e4) ,是已知小圈子的個數。隨後n行,每行按下列格式給出乙個小圈子裡的人:k p[1] p[2] ⋯ p[k]
其中k是小圈子裡的人數,p[i](i=1,⋯,k)是小圈子裡每個人的編號。這裡所有人的編號從1開始連續編號,最大編號不會超過10e4。
之後一行給出乙個非負整數q(≤10e4),是查詢次數。隨後q行,每行給出一對被查詢的人的編號。
輸出格式:
首先在一行中輸出這個社群的總人數、以及互不相交的部落的個數。隨後對每一次查詢,如果他們屬於同乙個部落,則在一行中輸出y,否則輸出n。
輸入樣例:
4310
1223
4415
7839
64210
537
輸出樣例:
102y
n
簡單並查集
#include
using namespace std;
int exist[
10001
],pre[
10001
],num=
0,c=
0,m,n,p,t;
intf
(int x)
void
merge
(int a,
int b)
intmain()
for(
int i=
1;i<=
10000
;i++
)for
(int i=
1;i<=num;i++)if
(pre[i]
==i)
c++;printf
("%d %d\n"
,num,c)
;int op,a,b;
cin>>op;
while
(op--
)}
並查集 7 9 部落 25分
有不對的地方請多指正並查集型別的題,基本上結構相似。這個結構是查詢連通分支 人際關係類 主要由乙個陣列來儲存每個成員 其中陣列的值初始是其本身 在後期處理的過程中 同乙個圈子裡的人 路徑裡的通路 都指向同乙個人,在檢驗兩個人是否屬於同1個圈子時 只需用find函式來對比是否相同即可驗證 而被指向的這...
天梯賽 L2 024 部落 25分
在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。輸入格式 輸入在第一行給出乙個正整數n 10 4 是已知小圈子的個數。隨後n行,每行按下列...
L2 024 部落 25分 並查集
題目描述 在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。輸入格式 輸入在第一行給出乙個正整數n 10 4 是已知小圈子的個數。隨後n行,...