SLAF
世界乾涸,Zyh認爲這個世界的人們離不開水,於是身爲神的他要將他掌控的僅僅兩個水源地放置在某兩個不同的城市。這個世界的城市因爲荒蕪,他們僅僅保留了必要的道路,也就是說對於任意兩個城市有且僅有一條可行的道路。更簡單的,城市形成了一棵樹。
Zyh要將這兩個水源放在兩個不同的城市。飢渴的人們會選擇一個離他們最近的水源,並向其走去。每個城市的人的速度都是相同的,並且兩個相鄰(有邊直接相連)的城市的距離都是1,每個人花費的時間也都是1。zyh想知道對於他的每種放置方案,最遲到達的時間是多少。
對於100%的數據 n<=200000 , m<=200000
THISR
對於詢問
那麼
證明的關鍵:
由於原圖是一棵樹,所以
首先給所有點維護,以其爲子樹中並且以其出發的最長鏈、次長鏈、次次長鏈的長度。
現在考慮如何對於一個詢問而言,分別給兩棵樹求出從
設
那麼從
然後,樹就變成了這樣。
1.x
首先對於
再從
這個可以使用倍增實現,設
由於不能包含
2.y
對於
注意一下:
1.
2.
Dance in the Dark
這方法是真的騷。
但原題的出題人提供的解法就是維護最長鏈、次長鏈、次次長鏈+倍增的方法,
而非直徑的那種方法。