1. 程式人生 > >[USACO12DEC]逃跑的BarnRunning Away From…

[USACO12DEC]逃跑的BarnRunning Away From…

blank org usaco 維護 size 離線 線段樹合並 求一個 變化

[USACO12DEC]逃跑的BarnRunning Away From…

一個經典問題:

邊沒有邊權,多次詢問,查子樹中距離x為L的點的個數

n<=1e5,q<=1e5

1.離線,桶維護dep,前後兩次,記錄桶中的變化(天天愛跑步)

O(n)

邊有邊權,多次詢問,查子樹中距離x小於L的點的個數

n<=1e5,q<=1e5

L固定,預處理每個點的答案

1.倍增+差分。枚舉每個點考慮貢獻,倍增找到鏈,差分打標記

2.左偏樹(線段樹合並),不斷彈出不合法的。這些點在後面更加不合法

L不固定

子樹->dfn序,轉化成求一個區間內多少個數小於某個數,主席樹

O(nlogn)

邊權可以修改?

子樹距離根的距離要修改

樹狀數組套主席樹。O(nlog^2n)

[USACO12DEC]逃跑的BarnRunning Away From…