CF競賽題目講解_C1709E(深度優(yōu)先遍歷樹+路徑權(quán)值異或)
2022-10-15 12:50 作者:Clayton_Zhou | 我要投稿
AC代碼
https://codeforces.com/contest/1709/submission/176223419
?https://codeforces.com/contest/1709/problem/E
題意:
無根樹,點數(shù)為 n ,每個點有個點權(quán) a_u。
?定義一條路徑 P(u,v)? 的權(quán)值為經(jīng)過的所有點的點權(quán)的異或和。
?定義一棵樹是合法的,當(dāng)且僅當(dāng)樹上所有簡單路徑(只經(jīng)過每個點一次的路徑)的權(quán)值都不為 0。
?你可以對權(quán)值進行修改,可以改成任意正整數(shù),問最少修改多少次才能讓這棵樹合法。
輸出最小修改次數(shù)。
題解:
深度優(yōu)先遍歷樹+路徑權(quán)值異或
對每一個點開一個 set 表示當(dāng)前子樹的所有異或和(根節(jié)點到當(dāng)前節(jié)點),
v是 u的兒子, 比較set(u)與set(v)是否有相同元素,
有相同元素則需要修改u的權(quán)重。
標(biāo)簽: