模版 並查集

2021-09-27 02:34:11 字數 922 閱讀 9022

什麼是並查集

並查集是一種樹型的資料結構,用於處理一些不相交集合(disjoint sets)的合併及查詢問題。

為何使用inline

inline是c++關鍵字,在函式宣告或定義中,函式返回型別前加上關鍵字inline,即可以把函式指定為內聯函式。這樣可以解決一些頻繁呼叫的函式大量消耗棧空間(棧記憶體)的問題。關鍵字inline必須與函式定義放在一起才能使函式成為內聯函式,僅僅將inline放在函式宣告前面不起任何作用。inline是一種「用於實現」的關鍵字,而不是一種「用於宣告」的關鍵字。

模版可實現功能

查詢最大祖先

合併關聯群體即連通分支

查詢是否有共同最大祖先

相關題目部落格:

#include

#include

#define maxsize 100010

using namespace std;

int pre[maxsize]

;//存放上級 注意最大人數

inline

intfind

(int x)

return r;

}inline

void

join

(int x,

int y)

inline bool query

(int x,

int y)

//查詢是否有共同最大祖先

intmain()

for(

int i =

1; i <= q; i++

)return0;

}

樣例測試
輸入:97

2245

7138

9125

6231

967輸出:

noyes

並查集 模版

並查集 並查集,在一些有n個元素的集合應用問題中,我們通常是在開始時讓每個元素構成乙個單元素的集合,然後按一定順序將屬於同一組的元素所在的集合合併,其間要反覆查詢乙個元素在哪個集合中。這一類問題近幾年來反覆出現在資訊學的國際國內賽題中,其特點是看似並不複雜,但資料量極大,若用正常的資料結構來描述的話...

演算法模版之並查集

簡介 並查集實質是一種樹形的資料結構,一般用於處理一些不相交集合的合併及查詢問題。在具體問題解決上,比如找公共祖先節點 檢查圖的連通性等等,用通俗點的語言來描述的話,例如乙個幫派 有點社會呀 a的大哥是b,b的大哥是c,c的大哥是d,此時a b c d互相是不認識的,假如發生了幫派爭鬥,b和d相遇了...

模版 並查集(及其加權)

並查集是經典的圖論演算法,用來維護點與集合的關係,也簡潔明瞭。給定 n nn 個點,有 m mm 次操作,每次操作輸入 pppa aab bb 若 p 1 p 1 p 1 則 合併 aaab bb 若 p 2 p 2 p 2 則 查詢 aaab bb 是否同屬乙個集合 並查集初始化 每個父親點 都 ...