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...