社区讨论
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 条回复,欢迎继续交流。
正在加载回复...