專案部分
偷懶一天
個人學習部分
昨天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)\)的時間用完全揹包就可以做出來。
沒精力去搞多重揹包了,要先複習一下單調佇列。