思路:
//思路:
//根據演算法筆記上01揹包問題的一維形式改編,就僅僅是把每件物品的價值改為1,再未做其他修改,後來發現不行
/*const int maxn=1001;
int dp[maxn];
int w[maxn];
int main()
}/*// for(int i=0;i參照別人的答案,進行的思考:
首先,狀態轉移方程:dp[v]=min(dp[v],dp[v-v[i]]-v[i]),其中v[i]表示每件物品的體積
dp[i]的含義:箱子剩餘的最小空間,
min的第乙個引數代表:不放入第i件物品時,箱子剩餘的最小空間
第二個引數代表:放入第i件物品時,箱子剩餘的最小空間,
為什麼會有兩個-v[i]呢?
原因是:第乙個 -v[i] 代表 放入v[i]後箱子的容量(必須大於等於0),第二個則是放入v[i]之後箱子的剩餘容量
(ps:儘管說得不是很清楚。。。)
#include #include #include using namespace std;
const int maxn=1010;
int dp[maxn];
int w[maxn];
int main()
}int min_=v;
for(int v=0;v<=v;v++)
}printf("%d\n",min_);
}return 0;
}
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個整數,表示箱子剩餘空...
裝箱問題 Packing Problem
裝箱問題也叫揹包問題,簡單來說,就是把小貨物往大箱子裡裝,要如何才能裝得多。個人常見的經歷就是 裝冰箱 很有趣的現象就是常常感覺冰箱再也裝不下了,但是經過一翻折騰之後又神奇的裝下了。從企業運作角度來看就是盡量讓每個容器 倉庫 車輛 貨櫃 船等 裝的盡量多,可以節約企業的費用。通常,裝載率85 左右,...