並查集 全家桶板子

2021-10-09 19:28:53 字數 562 閱讀 1013

前言:並查集是用來解決 「朋友的朋友也是朋友」 類的問題,其實寫三個函式就能解決大部分題

//重點的三個函式(核心部分)

int fa[n];

void init()

int findfa(int x)

void union(int x, int y)

//找連通分支數(或者說是不同的圈子數)

int cnt = 0;

for(int i = 1; i <= people; i++)

if(findfa(i) == i) cnt++;

//判斷任意兩個元素是否屬於同乙個圈子

if(findfa(x)== findfa(y)) printf("y\n");

else printf("n\n");

//查詢某個點所在連通分支中點的個數

cout << num[findfa(a)] << endl;

並查集板子

void init int getf int x return father x int getf int x return father x void unite int x,int y else hdu 1213 how many tables include using namespace s...

hdu1213 並查集板子

並查集是一種支援合併與查詢的資料結構,在森林中進行操作,加上路徑壓縮,合併和查詢的時間複雜度幾乎都是常數。並查集最基礎的作用就是建立不同的點之間的所謂的 關係 並且查詢兩者是否有關係。並查集的乙個特點是向量型關係傳遞性,比如a b b c,則有a c,是不是特別像向量之間的傳遞?在很多時候並查集的應...

我的多項式全家桶板子

博主最近心血來潮,貼貼全家桶。本多項式全家桶包含了 多項式乘法,多項式求逆,多項式求ln,多項式求exp,多項式除法,多項式取模,多項式多點求值,以及乙個為了多點求值用的分治ntt。由於時代變了,博主的多點求值使用了常數較小的版本。include define i inline define fi ...