背包问题求解
  • 板块学术版
  • 楼主wisdom2010
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/7/18 09:30
  • 上次更新2024/7/18 10:35:25
查看原帖
背包问题求解
1251525
wisdom2010楼主2024/7/18 09:30

求大佬帮忙解释一下背包问题main函数内循环部分

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3 + 10;
int w[maxn], v[maxn];//w是价值,v是体积
int f[maxn][maxn];
int n, W;

int main()
{
	scanf("%d%d", &n, &W);
	for(int i = 1; i <= n; i++)
		scanf("%d%d", &v[i], &w[i]);
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= W; j++)
		{
			f[i][j] = f[i - 1][j];
			if(j >= v[i])
				f[i][j] = max(f[i][j], f[i - 1][j - v[i]] + w[i]);
		}
	}
	printf("%d", f[n][W]);
	return 0;
}
2024/7/18 09:30
加载中...