POJ 1703 並查集 注意細節

2021-06-16 08:28:26 字數 640 閱讀 1755

這題很容易發現是並查集..但我就是mle了好久才過...原來有個細節一直沒注意到.. 

用father可以不斷向上指直道指向集合的標誌數...用另外乙個陣列s可以指向這個集合所相對的那個集合標誌數..

在d x y 時判斷合併x,y的集合時..一定要注意..

不僅    x=getfahter(x);       y=getfather(y); 

同樣 s[x]=getfather(s[x]); s[y]=getfather(y)

我就是因為s沒有做對~~就mle了好久..我是用遞迴寫的getfather..若使用迭代..沒更新s會tle....

#include#include#includeusing namespace std; 

int t,n,m,x,y,s[100005],father[100005];

char c;

int getfather(int x)

int main()

while (c!='a' && c!='d');

scanf("%d%d",&x,&y);

if (c=='a')

else

}}

return 0;

}

種類並查集(POJ 1703)

1703 find them,catch them 題目大意 有2個敵對幫派,輸入d a b表示a,b在不同幫派,輸入a a b表示詢問a,b是否是在乙個幫派。題解 因為並查集中的元素均是有聯絡的,否則也不會被合併到當前集合中。那麼我們就把這2個元素之間的關係量轉化為乙個偏移量,假設 x y 偏移量...

poj1703 經典並查集

一道非常經典的並查集,建議還可以做下hdu5971,這樣我感覺一般的並查集就並沒有神馬威脅了。祭奠我為此付出的好幾天時間。懶得加注釋,真的要想搞懂的話建議花時間自己看懂,畢竟ac 已經寫出來了。但是實在不會的話詳詢 qq1933160466。23333333333333333333333333333...

種類並查集(POJ1703)

圖學的有點自閉,再加上用到了並查集 模擬棧 搜尋,先補一下這些相對基礎的東西 跟普通並查集區別 1 陣列開兩倍 2 union set a n,b 和union set a,b n 3 判斷 find a find b 同隊 find a find b n 不同隊 不需要再 f a n f b n ...