描述:
有兩艘船,載重量分別是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 元。於是,他把每...