哈哈
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...