海賊OJ並查集練習題 朋友圈

2021-10-05 23:14:45 字數 861 閱讀 6600

題目描述

​ 所謂乙個朋友圈子,不一定其中的人都互相直接認識。

​現在給出一些人的朋友關係,人按照從 1 到 n 編號在這中間會進行詢問某兩個人是否屬於乙個朋友圈,請你編寫程式,實現這個過程。

輸入

第一行輸入兩個整數 n,m(1≤n≤10000,3≤m≤100000),分別代表人數和運算元。

接下來 m 行,每行三個整 a,b,c(a∈[1,2], 1≤b,c≤n)

當 a=1時,代表新增一條已知資訊,b,c 是朋友

當 a=2 時,代表根據以上資訊,詢問 b,c 是否是朋友

輸出

對於每個 a=2 的操作,輸出『yes』或『no』代表詢問的兩個人是否是朋友關係。

樣例輸入

6 51 1 2

2 1 3

1 2 4

1 4 3

2 1 3

樣例輸出no

yes思路:並查集的簡單應用,無需多言,上**

#include

using

namespace std;

int n;

int father[

10001];

intfind

(int x)

//查詢根結點

intmain()

}return0;

}//宣告father陣列時如果使用動態陣列int * father=new int[n+1];或者intfather(n+1);會超時

C 並查集練習題朋友圈

某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n...

九度OJ 朋友圈 並查集

題目描述 假如已知有n個人和m對好友關係 存於數字r 如果兩個人是直接或間接的好友 好友的好友的好友.則認為他們屬於同乙個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。假如 n 5 m 3 r 表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1 2 3屬於乙個朋友圈,4 5屬於另乙個朋...

九度OJ 朋友圈 並查集

題目描述 假如已知有n個人和m對好友關係 存於數字r 如果兩個人是直接或間接的好友 好友的好友的好友.則認為他們屬於同乙個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。假如 n 5 m 3 r 表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1 2 3屬於乙個朋友圈,4 5屬於另乙個朋...