社区讨论
全RE
P1064[NOIP 2006 提高组] 金明的预算方案参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m1vxurgj
- 此快照首次捕获于
- 2024/10/05 17:15 去年
- 此快照最后确认于
- 2025/11/04 17:58 4 个月前
rt,求调
CPP#include "bits/stdc++.h"
#define int long long
using namespace std;
struct node{
int v, p, q;
} a[100];
int n, m;
int dp1[5000005], dp2[5000005];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= m; i++){
cin >> a[i].v >> a[i].p >> a[i].q;
a[i].p *= a[i].v;
}
for (int i = 1; i <= m; i++)
if (a[i].q == 0){
for (int j = 1; j <= 5000000; j++) dp2[i] = 0;
for (int j = a[i].v; j <= n; j++)
dp2[j] = dp1[j - a[i].v] + a[i].p;
for (int j = 1; j <= m; j++)
if (a[j].q == i)
for (int k = n; k >= a[i].v + a[j].v; k++)
dp2[k] = max(dp2[k], dp2[k - a[j].v] + a[j].p);
for (int j = a[i].v; j <= n; j++)
dp1[j] = max(dp1[j], dp2[j]);
}
cout << dp1[n];
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...