Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
147321 | 冼俊烨 | 训练赛 | C++ | 通过 | 100 | 0 MS | 268 KB | 577 | 2024-05-18 14:38:30 |
//训练赛 #include <bits/stdc++.h> using namespace std; int t[110],v[110],g[110]; int dp[1100][110]; int main() { int T,V,N; scanf("%d%d%d",&T,&V,&N); for(int i=1; i<=N; ++i) scanf("%d%d%d",&g[i],&t[i],&v[i]); for(int i=1; i<=N; ++i) //枚举物品 for(int j=T; j>=t[i]; --j) //逆序枚举状态1 for(int k=V; k>=v[i]; --k) //逆序枚举状态2 dp[j][k]=max(dp[j][k],dp[j-t[i]][k-v[i]]+g[i]); printf("%d\n",dp[T][V]); return 0; }