#include <iostream>#include <vector>#include <cstdio>using namespace std;int f[10][10];#define max(x, y) (x)>(y) ? (x) : (y)int main(int argc, char** argv) {// 背包容量int package_size = 7;// 每个物品重量int weight[] = {3, 1, 3, 5, 4};// 每个物品价值int value[] = {1, 4, 3, 6, 9};// 物品总数int vsize = sizeof(weight)/sizeof(int);for (int i=1; i<=vsize; i++) {for (int j=1; j<=package_size; j++) {// 如果放不下当前物品if (wieght[i] > j){// 最大价值=不选当前物品的最大价值f[i][j] = f[i-1][j];}// 如果可以放下当前物品else {// 最大价值=max(不选当前物品的最大价值,重量减少后的最大价值+当前物品价值)f[i][j] = max(f[i-1][j], f[i-1][j-weight[i]]+value[i]);}}}printf("%d\n", f[vsize][package_size]);}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。