並查集模板 洛谷P3367

2021-08-08 03:23:39 字數 545 閱讀 4382

並查集是一種樹型的資料結構,用於處理一些不相交集合(disjoint sets)的合併及查詢問題。常常在使用中以森林來表示。

集就是讓每個元素構成乙個單元素的集合,也就是按一定順序將屬於同一組的元素所在的集合合併。

初始化:

把每個點所在集合初始化為其自身。通常來說,這個步驟在每次使用該資料結構時只需要執行一次,無論何種實現方式,時間複雜度均為o(n)。

查詢:

查詢元素所在的集合,即根節點。

合併:

將兩個元素所在的集合合併為乙個集合。

通常來說,合併之前,應先判斷兩個元素是否屬於同一集合,這可用上面的」查詢」操作實現。

#include

using namespace std;

int n,m,k,p,ans=0,pd[500001];

int f[500001],x,y,z;

int find(int

x)int main()

else

}return

0;}

洛谷P3367 模板 並查集

如題,現在有乙個並查集,你需要完成合併和查詢操作。第一行包含兩個整數n m,表示共有n個元素和m個操作。接下來m行,每行包含三個整數zi xi yi 當zi 1時,將xi與yi所在的集合合併 當zi 2時,輸出xi與yi是否在同一集合內,是的話輸出y 否則話輸出n 如上,對於每乙個zi 2的操作,都...

洛谷P3367 模板 並查集

如題,現在有乙個並查集,你需要完成合併和查詢操作。輸入格式 第一行包含兩個整數n m,表示共有n個元素和m個操作。接下來m行,每行包含三個整數zi xi yi 當zi 1時,將xi與yi所在的集合合併 當zi 2時,輸出xi與yi是否在同一集合內,是的話輸出y 否則話輸出n 輸出格式 如上,對於每乙...

洛谷 P3367 模板 並查集

如題,現在有乙個並查集,你需要完成合併和查詢操作。輸入格式 第一行包含兩個整數n m,表示共有n個元素和m個操作。接下來m行,每行包含三個整數zi xi yi 當zi 1時,將xi與yi所在的集合合併 當zi 2時,輸出xi與yi是否在同一集合內,是的話輸出y 否則話輸出n 輸出格式 如上,對於每乙...