揹包 01揹包,完全揹包,多重揹包

2021-09-09 04:50:58 字數 914 閱讀 2403

哈哈

01揹包

f[i][v] = max

完全揹包

f[i][v] = max

多重揹包

f[i][v] = max

#include #include #include #include #include #define maxn 1000

using namespace std;

int n, cap;

int w[maxn] = ; //重量(花銷)

int v[maxn] = ; //價值

int main() /*

dp[i][j] = dp[i-1][j] j < w[i]; 放不下

dp[i][j] = max(dp[i - 1][j - w[i]] + v[i], dp[i - 1][j]) j >= w[i]; //放得下:選擇放或者不放

if(j >= w[i])

m[i][j] = max(m[i-1][j], m[i-1][j-w[i]] + v[i]);

else

m[i][j] = m[i-1][j];

*///第i個物品放入容量為j的包裡

int dfs(int i, int j)

return ans;

}//i:1--n

int ans[maxn][maxn];

int dfs(int i, int j)

int dp[maxn][maxn];

void solve() }}

void solve() }}

完全揹包:

void solve()

} }}//多重揹包

int num[maxn];

void solve()

} }}

01揹包 完全揹包 多重揹包

01揹包 zeroonepack 有n件物品和乙個容量為v的揹包,每種物品均只有一件。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。include include includeusing namespace std const int n 1000 10 int ...

01揹包 完全揹包 多重揹包

01揹包 zeroonepack 有n件物品和乙個容量為v的揹包。每種物品均只有一件 第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。完全揹包 completepack 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的費用是c i 價值是w i 求...

01揹包,完全揹包,多重揹包

01揹包 include int c 101 1001 定義100個物品1000重量的總價值陣列 void calcmaxvalues int n,int t w v 101 w單個物品的重量,v單個物品的價值 for i 1 i n i for i 1 i n i else else printf...