2 条题解
-
1
世界上最好的题解😄
#include<bits/stdc++.h> using namespace std; int f[401][401]; int hi[401],ti[401],ki[401]; int main(){ int h,t,n; cin>>h>>t>>n; for(int i=1;i<=n;i++) cin>>hi[i]>>ti[i]>>ki[i]; for(int i=1;i<=n;i++){ for(int j=h;j>=hi[i];j--) for(int k=t;k>=ti[i];k--) f[j][k]=max(f[j][k],f[j-hi[i]][k-ti[i]]+ki[i]); } cout<<f[h][t]; return 0; }
看完别忘了点赞呦👀️
-
0
#include <iostream> #include <cmath> using namespace std; int t1, t2, n, w[20010], v[20010], k[20010], f[20010][20010]; int main() { cin >> t1 >> t2; cin >> n; for (int i = 1;i <= n;i ++) cin >> w[i] >> v[i] >> k[i]; for (int i = 1;i <= n;i ++) { for (int j = t1;j >= w[i];j --) { for (int h = t2;h >= v[i];h --) { f[j][h] = max(f[j][h], f[j - w[i]][h - v[i]] + k[i]);//状态转移方程 } } } cout << f[t1][t2]; return 0; }
- 1
信息
- ID
- 506
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 13
- 已通过
- 12
- 上传者