4 条题解
-
1
# include <bits/stdc++.h> using namespace std; long long v[10001], t[10001], f[10000001], n, m; int main() { cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> t[i] >> v[i]; } for (int i = 1; i <= m; i++) { for (int j = t[i]; j <= n; j++) { f[j] = max(f[j], f[j - t[i]] + v[i]); } } cout << f[n]; return 0; }
-
0
#include <iostream> using namespace std; const int MAXN = 1e7+3; long long n,m,a[MAXN],b[MAXN]; long long f[MAXN]; int main() { cin >> n >> m; for (int i = 1;i <= m;i ++) cin >> a[i] >> b[i]; for (int i = 1;i <= m;i ++) { for (int j = a[i];j <= n;j ++) { f[j] = max(f[j-a[i]]+b[i],f[j]); } } cout << f[n]; return 0; }
-
0
经典DP板子。
直接上代码!
https://www.luogu.com.cn/record/78363219
#include<iostream> using namespace std; long long n,m,v[10005],t[10005],f[10000005]; int main(){ cin>>n>>m; for(int i=1;i<=m;i++) cin>>t[i]>>v[i]; for(int i=1;i<=m;i++){ for(int j=t[i];j<=n;j++){ f[j]=max(f[j],f[j-t[i]]+v[i]); } } cout<<f[n]<<endl; return 0; }
- 1
信息
- ID
- 611
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 29
- 已通过
- 14
- 上传者