原文:換根DP學習筆記

今天打 Atcoder 時遇到了一道換根 DP ,發現自己不太會,學習了一下。 一般來說,這類題在做樹形 DP 時沒有固定的根,可以枚舉根然后做 N 次樹形 DP ,但復雜度是不太優的,於是有了換根 DP ,一般通過兩次對整棵樹的 dfs 遍歷來求解,復雜度一般是線性的。 還是用例題來直觀講解吧。 POJ Accumulation Degree 題意 有一個 n 個結點的樹形水系,每條 u gt ...

2021-10-11 09:46 10 97 推薦指數:

查看詳情

[算法學習] dp

dp 一般來說,我們做題的樹都是默認 \(1\) 為的。但是有些題目需要計算以每個節點為時的內容。 朴素的暴力:以每個點 \(u\) 作為 \(root\) 暴力dfs下去,復雜度\(O(n^2)\); 正確的做法:dp,復雜度\(O(n)\)。 執行步驟 第一次掃描,先 ...

Tue Apr 07 01:31:00 CST 2020 3 651
DP

dp的通法:1.第一次掃描時,任選一個點為,在“有樹”上執行一次樹形DP,也就在回溯時發生的,自底向上的狀態轉移。 2.第二次掃描時,從剛才選出的出發,對整棵樹執行一次dfs,在每次遞歸前進行自上向下的推導,計算出后的解。 例題POJ3585 Accumulation ...

Wed Oct 30 23:53:00 CST 2019 2 918
淺談DP

淺談DP 本篇隨筆淺談一下算法競賽中的DPDP概念 DP其實是樹形DP的一種延伸技巧或者說是方法。 它的使用范圍是,對樹上的每個點跑樹形DP。這樣的話,不用DP一點一點跑的復雜度就是\(O(n^2)\),必炸。那么DP應運而生。簡單來講,就是我們會通過推理 ...

Sat Sep 05 03:39:00 CST 2020 0 608
dpdp學習筆記

1 dpdpdp dpdp 中的 dp 一定是 dpdp 的基礎,而 dpdp 也就是從 dp 的基礎上 dp 而來的。 沒錯,上面這句話就是套娃。 為了方便大家理解,從這句話開始,dpdp 將作為一個不加空格的詞,方便區分。 dp 的時候,我們一般 ...

Thu Jan 14 05:57:00 CST 2021 0 513
樹形$dp$學習筆記

今天學習了樹形\(dp\),一開始瀏覽各大\(blog\),發現都\(TM\)是題,連個入門的\(blog\)都沒有,體驗極差。所以我立志要寫一篇可以讓初學樹形\(dp\)的童鞋快速入門。 樹形\(dp\) 概念類 樹形\(dp\)是一種很優美的動態規划,真的很優美真的,前提是在你 ...

Wed Sep 05 06:16:00 CST 2018 7 3911
[學習筆記]整體DP

問題: 有一些問題,通常見於二維的DP,另一維記錄當前x的信息,但是這一維過大無法開下,O(nm)也無法通過。 但是如果發現,對於x,在第二維的一些區間內,取值都是相同的,並且這樣的區間是有限個,就可以批量處理。 思想: 通過動態開點線段樹維護第二維, 如果某個節點沒有兒子 ...

Wed May 29 19:30:00 CST 2019 0 447
AtCoder abc160 F - Distributing Integers【dp

傳送門 題意 給一顆樹,指定一個點,從這個點開始染色,每次只能在已染色點旁邊染色,問從每個點開始染色分別能產生多少種染色序列。 題解 這個問題其實就是問一顆有樹的拓撲序列個數。 其實我們知道不是樹的有向無環圖的拓撲序列個數是個np問題,但是樹的拓撲序列個數是一個可解的問題。\(n ...

Mon Mar 30 18:01:00 CST 2020 4 362
poj3585(樹形dp法)

法思想為, 1,隨便找一個點作為進行dp, 2,再以原來點為進行dp,此次dp,設最優解為 f[x],那么f[root]=d[root],這是顯而易見的 然后再通過找d[son]與f[x]之間關系進行dp 比如本道題,若f[x]已知最優解,那么把son換成,f[x]的最優解即為 ...

Sun Aug 05 00:03:00 CST 2018 1 904
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM