3 条题解
-
0
#include <iostream> using namespace std; int main() { int n,m,a[1001],b[1001]; int f[1001]; 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 = n;j >= a[i];j --) f[j] = max(f[j-a[i]]+b[i],f[j]); cout << f[n]; return 0; }
-
0
-
0
#include<bits/stdc++.h> using namespace std; int q,w,e,r,t,y,u,o,p,s,d,f,g,h,j,l,z,x,c,v,n,m,i,k,a[10001],aa[10000],b[999][99999]; int main() { cin>>m>>n; for(i=1;i<=n;i++) { cin>>a[i]>>aa[i]; } for(i=0;i<=n;i++) { for(j=0;j<=m;j++) { b[i][j]=-99999999; } } b[0][0]=0; for(i=1;i<=n;i++) { for(j=0;j<=m;j++) { b[i][j]=b[i-1][j]; if(j>=a[i]) b[i][j]=max(b[i][j],b[i-1][j-a[i]]+aa[i]); } } for(i=0;i<=m;i++) { x=max(x,b[n][i]); } cout<<x; return 0; }
- 1
信息
- ID
- 49
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 78
- 已通过
- 46
- 上传者