基礎實驗4 2 8 部落 25 分

2021-10-19 23:04:41 字數 1199 閱讀 8646

傳送門

在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。

輸入格式:

輸入在第一行給出乙個正整數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行,...