编辑代码

#include <iostream>
using namespace std;

const int N = 1010;
int v[N], w[N], dp[N][N]; //V[]为体积存放数组,W[]价值存放数组
//dp[i][j]当背包容量为i,现有j件物品可以装,所能取到的最大价值

int main() {
    int v[] = {0, 6, 5, 4, 2, 1};
	int w[] = {0, 5, 3, 5, 3, 2};

	for (int i = 1; i <= 5; i++)
		for (int j = 1; j <= 10; j++) {
			if (j >= v[i]) //判断该物品能否放入背包
				dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - v[i]] + w[i]); //将放入前价值与放入后价值对比
			else
				dp[i][j] = dp[i - 1][j]; //面对一个物品
		}

	cout << dp[5][10];
	return 0;
}