1. 程式人生 > >loj6157 A^B Problem (並查集)

loj6157 A^B Problem (並查集)

所有 是否 一個點 ron blank problem 異或 loj 遍歷

題目:

https://loj.ac/problem/6157

分析:

這種樹上異或,一般是采用分位考慮,但是這題即使分位,也會發現非常不好處理

這裏考慮維護一個點到其根的路徑的異或值

用並查集去檢測m個測試

若s和t不在一個並查集內:

  挑出s的根f1,t的根f2,father[f1]=f2,並且發現w[f1]=c^w[s]^w[t]

若s和t在一個並查集內:

  那麽首先這個並查集內的所有點的w值都已經求過了,那麽只要check一下c是否等於w[s]^w[t]即可

如果最後並查集數量多於一個,那麽就是No

直接遍歷一遍找最小的和最大的就行

loj6157 A^B Problem (並查集)