SDNUOJ 1076 種類判斷 種類並查集

2021-10-10 22:15:36 字數 1008 閱讀 7503

time limit: 1000 ms memory limit: 32768 kb

description

已知有 n 個學生,其中有男生也有女生,給定 m 個關係,每個關係表示兩個同學性別是否相同。如 同學a 和同學 b 是同性,或不是同性,判斷這些條件中是否存在矛盾。

input

第一行為兩個整數 n(1 <= n <= 1000), m(1 <= m <= 1000),每個同學編號為1到n,之後m行,每行三個整數,前兩個整數表示兩個同學的編號,第三個整數為0或者1,若為0,則表示兩個同學為同性,否則為異性。

output

一行,若存在矛盾,輸出yes,否則輸出no

sample input

5 51 2 1

2 3 1

3 4 1

4 5 1

5 1 0

sample output

no

#includeusing namespace std;

int p[2005];//開資料量兩倍大的陣列(種類並查集)

void init(int n) //初始化

}int find(int v)

}void merge(int x,int y)

}int main()

if(c==1)

merge(a,b+n),merge(a+n,b); //種類並查集的合併操作 ,前面的好理解,後面的就是敵人的朋友的敵人和自己是同類= =

} else

merge(a,b),merge(a+n,b+n); //種類並查集的操作

} }if(flag) cout<<"yes\n";

else cout<<"no\n";

} return 0;

}

poj1182 種類並查集

有點坑的題目,不過做做絕對利大於弊,尤其在你不斷wa到哭的時候,大神忽略這句 0 兩者相同級別 1 被根節點吃 2 吃根節點 原因 對於輸入的關係1和2,減1之後便是輸入的兩個量之間的關係 其實是寫完題目之後看解題報告發現這規律的 include include using namespace st...

hdu1829(種類並查集)

題意 給你n個蟲,輸入m行a,b,表示a和b是異性,要你判斷是否有同性戀 這是一道種類並查集題,對於乙個並查集新手的我還是覺得有點難度的。種類並查集的關鍵 當前節點到他的根節點的距離 在這道題中,如果到根節點的距離是奇數說明是異性,偶數說明是同性,即同性戀,利用rank陣列記錄到根節點的距離,比如r...

POJ 1703 種類並查集

題意 乙個城市裡面有兩個黑幫 有兩種操作 a ask 詢問 x,y的關係 d x,y是一夥的 很明顯是種類並查集 於是就yy一下 relationsi 表示與父節點的關係 fatheri 記錄父節點 在合併和查詢root的時候 relations 更新注意一下就可以了 include include...