2024.9.21 計劃

Laurance發表於2024-09-21

專案部分

偷懶一天

個人學習部分

昨天DP的兩個題
DP一個題
1.多重揹包問題 III

總結

01揹包的最佳化:由於一般狀態轉移方程是:
f[i][j]= f[i - 1][j] + f[i - 1][j - v]
所以說最佳化空間的時候要倒著列舉體積,否則會導致f[i - 1][j - v]被更新成f[i][j - v]

完全揹包的最佳化:一般狀態轉移方程是:
f[i][j] = f[i - 1][j] + f[i - 1][j - v] + f[i - 1][j - v * 2] + ... + f[i - 1][j - v * k]
考慮到f[i][j - v] = f[i - 1][j - v] + f[i - 1][j - v * 2] + ... + f[i - 1][j - v * k]
所以可以得到最佳化:f[i][j] = f[i - 1][j] + f[i][j - v]
由於這裡用到的是同一層的狀態,所以要正著列舉體積,讓前面的狀態先算出來。

搞清楚了極大線性無關組的求法,\(O(nm)\)的時間用完全揹包就可以做出來。
沒精力去搞多重揹包了,要先複習一下單調佇列。

相關文章