裝箱問題 Packing DP

2022-09-14 00:36:24 字數 467 閱讀 3148

有乙個箱子容量為v(正整數,0<=v<=20000),同時有n個物品(0要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。

第一行為乙個正整數v表示箱子的容量,第二行乙個正整數n表示物品個數,接下來n行列出這n個物品各自的體積。

單獨一行,表示箱子最小的剩餘空間。

1 #include 2 #include 34

intmain()522

}23}24

for(j=0;j<=v;j++)

2528 printf("%d"

,j);

29while(true

);30

return

0;

31 }

《問題分析》

經典的0/1揹包問題,設定乙個bool陣列來訪問狀態,和乙個int陣列進行倒序遍歷。

狀態轉換方程:opt[j]=opt[j-w[i]]

問題A 裝箱問題

思路 思路 根據演算法筆記上01揹包問題的一維形式改編,就僅僅是把每件物品的價值改為1,再未做其他修改,後來發現不行 const int maxn 1001 int dp maxn int w maxn int main for int i 0 i參照別人的答案,進行的思考 首先,狀態轉移方程 dp...

Codeup 問題 A 裝箱問題

問題描述 有乙個箱子的容量為v v為正整數,且滿足0 v 20000 同時有n件物品 0的體積值為正整數。要求從n件物品中,選取若干裝入箱內,使箱子的剩餘空間最小。輸入 1行整數,第1個數表示箱子的容量,第2個數表示有n件物品,後面n個數分別表示這n件 物品各自的體積。輸出 1個整數,表示箱子剩餘空...

練習 問題 A 裝箱問題

問題描述 有乙個箱子的容量為v v為正整數,且滿足0 v 20000 同時有n件物品 0的體積值為正整數。要求從n件物品中,選取若干裝入箱內,使箱子的剩餘空間最小。輸入 1行整數,第1個數表示箱子的容量,第2個數表示有n件物品,後面n個數分別表示這n件 物品各自的體積。輸出 1個整數,表示箱子剩餘空...