01揹包的常數優化的一點解釋

2022-03-05 10:42:55 字數 351 閱讀 7805

01揹包的常數優化的一點解釋

for i ← 1 to n

for v ← v to max (v−key, ci )

其中\(key=sum_^nv_j\) .

注意到在空間優化後,內層迴圈已經變成逆序的了。也就是說,在給定物品i的時候,假設\(v > v'\),那麼\(dp[v]\)總是會先\(dp[v']\)更新,\(dp[v']\)被更新了的話,\(dp[v]\)一定也被更新過了。也就是說,演算法更偏向於資訊靠右存放。既然這樣,我們就不要更新到過左的位置,如何劃定這個過左的位置?只需要保證當前的物品可以放下以及後面的物品都能放下。

這種優化在揹包體積賊大的情況下較為有優勢。

關於0 1揹包的常數優化的理解

在揹包九講中,作者提到過 for i 1 to n for v v to ci中第二重迴圈的下限可以改進。它可以被優化為 for i 1 to n for v v to max v sum ci cn ci 可以這樣理解 我們需要的最終結果是dp v 當dp v 最後一次更新實在i n時,此時根據轉...

offset 和 零點的一點解釋

目錄 一 offset 1.0.0第三個關節沒有offset的零點位置 1.0.1第三個關節轉動pi 6 1.1.0第三個關節有offset的零點位置 1.1.1 第三個關節轉動pi 6 二 零點 2.0什麼是零點丟失?2.1是什麼原因造成了零點的丟失?2.2零點丟失之後重新校正,對模型的精度有影響...

關於python的 init 方法的一點解釋

以下是 例子 class parent object def init self self.name yy def override self print parent override def implicit self print parent implicit def altered self...