1. 程式人生 > >淺談"$fake$樹"——虛樹

淺談"$fake$樹"——虛樹

聯通 tar content 淺談 show ont 導致 ext das

樹形$dp$利器——"$fake$"樹(虛樹$qwq$)

問題引入:

在許多的樹形動規中,很多時候點特別多,而又有一些毒瘤操作,導致很多時候,原本優秀的算法變得很雞肋,而虛樹就是解決這種問題的一把利器

那讓我們來看一道例題:

洛谷P2495 [sdoi2011]消耗戰

一句話題意:給定一棵$n$個節點的樹,$m$次詢問,每次給出幾個點,要你刪除若幹條邊使得這些點不和根節點聯通

我們看到數據範圍:

$n<=2e5,\sum k<=5e5$

考慮樸素的$dp$,狀態和方程都很好想,大概就是: 對於一個點,可以刪除它到根節點的邊的最小值,或者是把子樹中有標記點的邊的最小值刪除(當然還要考慮當前點是不是標記點等因素,這不是重點反正$qwq$) 那麽一次詢問就是$O(n)$,看上去確實很優秀了,但是有$m$次詢問,$m$好像還無上限,那麽總時間復雜度就是$O(nm)$的算法了,$m$大一點就會炸得飛起,那麽虛樹就誕生了$qwq$

淺談"$fake$樹"——虛樹