fi
,j,k
f i,
j,
k動態規劃本質fi
,j,k
f i,
j,
k到第i個數,選j個,和未k
先dp完人(連通塊)再插空格 fi
,jf i,
j表示前i個人有j個連通塊的方案數
新來乙個人,可以產生乙個新連通塊,也可以消掉乙個連通塊,也可以並到乙個連通塊裡
也就是f[i
][j]
f [i
][j]
能轉移到f[
i+1]
[j−1
] f[i
+1][
j−1]
(係數為j),f[
i+1]
[j+1
] f[i
+1][
j+1]
(係數為j),f[
i+1]
[j] f[i
+1][
j]
(係數為2j)
實際上是在退揹包
乙個看起來類似于容斥的做法。
假設要退wi,先不管做一遍揹包f[i]表示裝滿i
對於每個x,需要求出g[i]表示不用w[x]裝滿的方案數 對於i
∈0wx
−1i ∈0
wx−1
i>=wx
i
>=wx
g[i]=f[
i]−g
[i−w
[x]]
g [i
]=f[
i]−g
[i−w
[x]]
實際上乙個揹包是乙個多項式(生成函式)
所以刪除乙個元素相當於是除以乙個單項式
prefer編碼
先想乙個暴力,先暴力列舉出每個點的度數,根據prufer編碼可以得到這樣度數的數的不同形態的圖的個數
可以得到乙個式子….
二分價效比,移項,得到每個點的新花費,構成乙個樹的結構
每次選乙個連通塊
就是上午dfs序上dp即可
關注列的性質,從左往右dp
f`前置知識:
fn表示n個代表號的無向圖個數
容斥 f[n]=2^ - (見筆記)
關於這題 f[
i][j
] f[i
][j]
表示i個點j座橋的帶標號無向連通圖個數 f[
i][j
]=σf
[i′]
[j′]
∗f[i
−i′]
[j−j
′]f [i
][j]
=σf[
i′][
j′]∗
f[i−
i′][
j−j′
](後面還有一串見筆記)
套路題略過
考慮怎麼樣的01串是不合法的
顯然有連續的1是不合法的,其餘都是合法的
按位來做就行了
直接列舉每一位,看這一位是1的個數是奇數還是偶數
f[i][j][k]
略過動態規劃本質
動態規劃 什麼是動態規劃?
先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...
mysql動態規劃 動態規劃
動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...
《動態規劃》 ACM 動態規劃例題詳解
描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 圖1 圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。輸...