資料結構專題

2021-05-28 01:07:27 字數 751 閱讀 1943

一.並查集

主要操作:

1.合併兩個不相交集合

2.判斷兩個元素是否屬於同一集合

時間複雜度:

o(n*α(n)),其中α(x),對於x=宇宙中原子數之和,α(x)不大於4,事實上,路經壓縮後的並查集的複雜度是乙個很小的常數。

模板題

#include #includeusing namespace std;

//for poj 1611

const int maxn = 30001;

int pa[maxn],rank[maxn],num[maxn];

void make_set(int x)

int find_set(int x)

return root;

}void union_set(int x, int y)

else

}int main()

for(i = 0; i < n; i++)

make_set(i);

for(i = 0; i < m; i++)

}/*找到0所在的樹的樹根*/

x = find_set(0);

cout << num[x] << endl;

}return 0;

}

資料結構專題qvq

傳送門 由於每次只在最後加數我們就考慮乙個神奇的動態反向st表xd include include include include include include include define ll long long define maxn 200000 10 define inf 0x7ffff...

資料結構練習專題

下面我給大家帶來一些資料結構的題,供大家欣賞 一 棧 鐵軌試題描述 某城市有乙個火車站,鐵軌鋪設如圖所示,有n節車廂從a方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,...

資料結構專題總結

這幾天主要學習以及了解了幾種資料結構,只能說是大概理解了其作用,和基本使用方法,但還不能具體靈活運用。這裡主要談談對這幾個知識點的理解 首先是棧和佇列,主要是做了幾個關於棧的題目,佇列知識要與其他知識一起用,現在還不能知道其具體作用和用法。棧是主要特點是先進先出,在c 中有專門的類庫,但我更習慣用陣...