提交时间:2024-05-18 14:38:30

运行 ID: 147321

//训练赛 #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; }