問題A 裝箱問題

2021-09-10 12:47:56 字數 761 閱讀 7670

思路:

//思路:

//根據演算法筆記上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 左右,...