6 条题解
-
1
#include<bits/stdc++.h> using namespace std; const int N = 1000 + 10; int m , w[N] , c[N] , dp[1010] , n , s[N]; int main(){ cin >> m >> n; for(int i = 1;i <= n;i++) cin >> w[i] >> c[i] >> s[i]; for(int i = 1;i <= n;i++) for(int j = m;j >= w[i];j--) for(int k = 1;k <= s[i];k++) { if(k * w[i] > j) dp[j] = dp[j]; else dp[j] = max(dp[j] , dp[j - w[i] * k] + c[i] * k); } cout << dp[m]; return 0; }
信息
- ID
- 1734
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 191
- 已通过
- 75
- 上传者