列舉最後停在rt點,轉化有根樹。
策略一定是選取兩個沒有祖先關係的點同時向上走。可以用勢能證明,如果有祖先關係,一加一減總勢能不變,而我們要求總勢能為0。
然後這是乙個模型,n個點在m個集合中,每次從不同集合中拿出兩個球,那麼有解的條件是n為偶數且sum-max>=max
劃分子階段,假設在u點子樹內抵消,設f[u]為u子樹內最多消除多少對,可以把子樹內的點x拆成dis(u,x)個操作,那麼目的就是給操作兩兩抵消。
在u點按不同兒子分集合,然後用結論盡可能抵消更優。
剩下的可在非u點抵消,這些是我們已經dp出來的。
最後在根節點判下合法更新答案,也就是sum/2。
直接考慮每個數字的貢獻,形式是乙個x=10的多項式
\(ans=\sum\limits_^\sum\limits_^w(j)\)
後面那個東西是求[1,x]中所有數不小於i的數有多少個,可以數字dp
n很小,但似乎|s|很大。可以暴力枚舉子序列,但是不能暴判。
考慮構造乙個子串行自動機,狀態(s,t)表示當前有串s,後面要接t的子串行。由於n很小,狀態數\(o(n2^n)\)
所以s是t的子串行當且僅當\((\phi,t)->(s,\phi)\)
由於是dag,所以線性時間內dp下路徑數即可。
轉化限制:等價於[l,r]內<=h且存在高度為h的點
求出每個點的上界\(up_i\),可以發現答案內高度為h的點i滿足\(up_i=h\)
n很大,不能在原序列上dp,但是限制最多只有500個。
拿出來單獨dp
暫沒寫完...
黑書DP例題
page section no title submit 113 1.5.1 例題1 括號序列 poj1141 116 1.5.1 例題2 棋盤分割 poj1191 117 1.5.1 例題3 決鬥 sicily1822 117 1.5.1 例題4 舞蹈家 懷特先生 acm icpc live ar...
數字dp例題
在了解數字dp之前,先來看乙個問題 求a b中不包含49的數的個數.0 a b 2 10 9 注意到n的資料範圍非常大,暴力求解是不可能的,考慮dp,如果直接記錄下數字,陣列會開不起,該怎麼辦呢?要用到數字dp.數字dp一般應用於 求出在給定區間 a,b 內,符合條件p i 的數i的個數.條件p i...
樹形DP例題
dp感覺還是有點陌生,但是這個必須要強化,這類題型實在是太常見了 一道比較經典的樹形dp入門題。設dp陣列 dp root 0 表示對於該節點不選 dp root 1 表示對於該節點擊 則有 dp root 0 max dp son 0 dp son 1 dp root 1 dp son 0 主要可...