求大佬指点
查看原帖
求大佬指点
566004
天上人间123456楼主2023/7/11 09:14
#include <bits/stdc++.h>
using namespace std;

long long w[110][1010], v[110][1010];
bool group[110];
long long f[1010][1010];

int main()
{
	int m, n;
	cin >> m >> n;
	int g = 0;
	for(int i = 1; i <= n; i++)
	{
		int x, a, b;
		cin >> a >> b >> x;
		g += (!group[x]);
		group[x] = true;
		w[x][++w[x][0]] = a;
    	v[x][++v[x][0]] = b;
	}
	for(int i = 1; i <= g; i++)
	{
		for(int j = m; j >= 0; j--)
		{
			f[i][j] = f[i - 1][j];
			for(int k = 1; k <= v[g][0]; k++)
			{
				if(w[i][k] > j) continue;
				f[i][j] = max(f[i][j], f[i - 1][j - w[i][k]] + v[i][k]);
			}
		}
	}
	long long maxn = 0;
	for(int i = 1; i <= m; i++)
	{
		maxn = max(maxn, f[g][i]);
	}
	cout << maxn << endl;
	return 0;
}

帮忙看一下呗,才4分/(ㄒoㄒ)/~~

2023/7/11 09:14
加载中...