1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int f[31000],v[30],w[30]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++)scanf("%d%d",&v[i],&w[i]); f[0]=0; for(int i=1;i<=m;i++) { for(int j=n;j>=v[i];j--) { f[j]=max(f[j],f[j-v[i]]+v[i]*w[i]); } } printf("%d\n",f[n]); return 0; }
Pascal :
var n,m,w,c,i,j:longint; f:array[0..100000]of longint; begin readln(n,m); for i:=1 to m do begin readln(w,c); c:=c*w; for j:= n downto w do if f[j-w]+c>f[j] then f[j]:=f[j-w]+c; end; for i:=2 to n do if f[i]>f[1] then f[1]:=f[i]; writeln(f[1]); end.
- 1
信息
- ID
- 1092
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者