社区讨论

DP分组背包WA求助

灌水区参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi861acw
此快照首次捕获于
2025/11/21 09:12
4 个月前
此快照最后确认于
2025/11/21 09:12
4 个月前
查看原帖
CPP
#include<iostream>
using namespace std;
int dp[15][205];
struct node1
{
	int w, c;
}; 
struct node
{
	int tot;
	node1 item[35];
}team[15];

int main()
{
	int v, n, t;
	cin >> v >> n >> t;
	for(int i = 1; i <= n; i++)
	{
		int x, y, z;
		cin >> x >> y >> z;
		team[z].item[++team[z].tot].w = x;
		team[z].item[team[z].tot].c = y;
	} 
	for(int i = 1; i <= t; i++)
	{
		for(int j = 0; j <= v; j++)
		{
			for(int k = 1; k <= team[i].tot; k++)
			{
				if(j >= team[i].item[k].w)
				{
					dp[i][j] = max(dp[i][j], dp[i-1][j-team[i].item[k].w] + team[i].item[k].c);
				}
				else dp[i][j] = max(dp[i][j], dp[i-1][j]);
			}
		}
	}
	cout << dp[t][v];
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...