裝載問題(動態規劃揹包問題)

2021-08-10 02:16:35 字數 791 閱讀 5643

描述:

有兩艘船,載重量分別是c1、 c2,n個貨櫃,重量是wi (i=1…n),且所有貨櫃的總重量不超過c1+c2。確定是否有可能將所有貨櫃全部裝入兩艘船。

輸入:

多個測例,每個測例的輸入佔兩行。第一行一次是c1、c2和n(n<=10);第二行n個整數表示wi (i=1…n)。n等於0標誌輸入結束。

輸出:

對於每個測例在單獨的一行內輸出yes或no

題解:動態規劃的揹包問題,用c1的作為限制重量找出最大載重,用箱子的總重量減去該最大載重,如果比c2小則能裝下

求最大載重就是乙個裸的01揹包

特別特別安利一下揹包九講,度娘上能搜到~~這裡就不具體寫揹包問題的解法了。。反正我也講不清楚

良心的粘上**:

#include

#include

#include

#include

using namespace std;

int c1,c2,n,sum=0;

int dp[10010],wi[10010];

int main()

memset(dp,0,sizeof(dp));//這裡也別忘了初始化不然就gg

for(int i=1;i<=n;i++)

for(int j=c1;j>=wi[i];j--)

dp[j]=max(dp[j],dp[j-wi[i]]+wi[i]);//這三行是演算法的核心**

//coutc2)

cout<<"no"cout<<"yes"<}

return 0;

動態規劃 揹包問題

給定n個物品,重量是,價值是,包的容量 承重 是w 問,放入哪些物品能使得包內價值最大 1 需要將問題轉化為子問題,通過遞迴實現,且子問題必然與父問題存在關聯 2 定義v i,j 表示為,當item取自前i個items且揹包capacity j 時,揹包問題的最優解,也即最高的價值。3 從前i個it...

動態規劃 揹包問題

不廢話,直接上 動態規劃,揹包問題。輸入為 int n 物品的種類數。int n weight 各件物品的重量。int n value 各種物品的價值。int w 揹包最大的裝載重量。輸出 v n b 的值,最大的裝載價值。x n 各類物品的裝載數量。author huangyongye publi...

動態規劃 揹包問題

1 開心的金明 問題描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n 元錢就行 今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的n 元。於是,他把每...