2018年6月10日

SPOJ QTREE3 - Query on the tree again!

QTREE > <

樹樹樹哦

連結:SPOJ QTREE3 - Query on the tree again!


題目:

給定一棵N個節點的樹,節點上有黑色或白色兩種,一開始全都是白的
然後有Q次操作,如下:
  • 0 i: 把i點的顏色反轉,即黑變白或白變黑
  • 1 v: 輸出從1號點走到v點的路徑中遇到的第一個黑點的編號,若無則答案為-1

做法:

每次詢問都是從1走到v,用樹鏈剖分+線段樹維護

在剖分的時候有在點上留下邊的時間戳
要找1 ~ v路徑中離1最近的,就在樹上維護區間中黑點最小時間戳,若都沒有黑點則INF

查詢時像做LCA一樣從v爬上去並更新答案
不太會算剖分的複雜度,但應小於O(Q(logN)^2)(?)

code:

沒有留言:

張貼留言