ACM 程式設計競賽 DP 01揹包

2021-07-11 14:54:22 字數 1396 閱讀 5486

輸入:

n=4

(w, v) =

w=5

輸出 7(選擇0,1,3)

//暴力演算法 

//o(2^n)

#include

using

namespace

std;

const

int maxn=100;

int w[maxn],v[maxn];

int n,w;

int rec(int i,int j) //從第i個商品開始挑選總重量小於j的部分

void solve()

int main()

cout

<<"輸入v:";

for(int i=0;icin>>v[i];

}cout

<<"輸入w: ";

cin>>w;

solve();

return

0;}

#include

#include

using

namespace

std;

const

int maxn=100;

int w[maxn],v[maxn];

int n,w;

int dp[maxn+1][maxn+1]; //記憶陣列

int rec(int i,int j) //從第i個商品開始挑選總重量小於j的部分

void solve()

int main()

cout

<<"輸入v:";

for(int i=0;icin>>v[i];

}cout

<<"輸入w: ";

cin>>w;

solve();

return

0;}

#include

#include

using

namespace

std;

const

int maxn=100;

int w[maxn],v[maxn];

int n,w;

int dp[maxn+1][maxn+1]; //記憶陣列

void solve()

}printf("%d\n",dp[0][w]);

}int main()

cout

<<"輸入v:";

for(int i=0;icin>>v[i];

}cout

<<"輸入w: ";

cin>>w;

solve();

return

0;}

這裡寫**片

演算法筆記 揹包DP (0 1揹包)

1.0 1揹包 參考例題 hloj416採藥 二維解法 我們設f i j 為前i個物品放進容量為j的揹包的最大價值 設體積為v i 價值為w i 我們可以列舉i 1到n 和j 1到n 不難得出狀態轉移方程 f i j max 可以知道,當第i件物品不取時,總價值為f i 1 j 取得話,總價值為前i...

揹包DP(01揹包,多重揹包,完全揹包)

從前乙個轉態轉移過來,選還是不選 for int i 1 i n i else f i j f i 1 j 01揹包優化 滾動陣列 for int i 1 i n i for int j m j 1 j if weight i j f j max f j f j weight i value i 優...

ACM 1014 裝箱問題 dp 01揹包變形

31人推薦 收藏發題解 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。乙個整數v,表示箱子容量 乙個整數n,表示有n個物品 接下來n個整數,分別表示這n 個物品的各自體積 乙個整數...