小技巧 邊權轉點權

2022-03-20 03:08:30 字數 381 閱讀 6789

很多演算法,比如樹鏈剖分,是在點權上進行計算和統計的。

詳解樹鏈剖分

但是有些題會比較狗,只給你邊權。

這時就要想辦法把邊權轉為點權。

以一棵樹為例。邊權轉點權一般是把邊權轉為深度較深的節點(也就是兒子節點)的點權。

這麼做很好理解,因為對於一棵樹來講,乙個點有很多個兒子(出邊),所以沒辦法把這些出邊的邊權都集中在乙個點上,但是乙個點只有一條入邊。所以我們選擇這種策略。

需要注意的是,在邊轉點之後,如樹鏈剖分之類的統計會出現變化。

顯而易見,邊轉點之後,每個點代表這個點本身和它的入邊這條路徑,所以在我們統計一條線段路徑的時候(從乙個點開始,到乙個點結尾),就不能同時包括其兩個端點(理由已經給出)。否則就會錯。

幸甚至哉,歌以詠志。

Poj3237 樹刨 線段樹 邊權轉點權

題意 在樹上操作,每次將兩點路徑值全變負和單點修改。每次求兩點間路徑的最大值。思路 邊權轉點權的話,每次把一條邊的兒子點作為該邊的權值。想起來挺好想,很容易出問題。查詢修改的話,要將多算的那條lca去掉就可以了。剩下的就是板子。總結 去掉lca,只需要判斷top x top y 時,x和y是否相等,...

Poj3237 樹刨 線段樹 邊權轉點權

題意 在樹上操作,每次將兩點路徑值全變負和單點修改。每次求兩點間路徑的最大值。思路 邊權轉點權的話,每次把一條邊的兒子點作為該邊的權值。想起來挺好想,很容易出問題。查詢修改的話,要將多算的那條lca去掉就可以了。剩下的就是板子。總結 去掉lca,只需要判斷top x top y 時,x和y是否相等,...

2023年ccpc威海(祖先的邊權和點權)

傳輸門 給出了 n個人和 m 條關係,每乙個團體的價值為當前團體的關係數 人數,如果這個團體的關係數小於等於人數那麼就是 0,也就相當於不選擇。可以使用並查集來考慮對於每個節點計算點數和邊數的關係,符合邊數 點數 0的就加上邊數 點數,最後求總和。pragma gcc optimize 1 prag...