1 条题解
-
0
C++ :
#include<cstdio> int f[20001],a[40],v,n,i,j; main(){ scanf("%d%d",&v,&n); for(i=1;i<=n;i++)scanf("%d",&a[i]); for(i=1;i<=v;i++)f[i]=0; f[0]=1; for(i=1;i<=n;i++)for(j=v;j>=a[i];j--) if(f[j]==0)if(f[j-a[i]]==1)f[j]=1; for(i=v;i>=0;i--)if(f[i]==1)break; printf("%d\n",v-i);}
Pascal :
var f:array[0..200000] of boolean; c:array[1..30] of longint; i,j,n,v:longint; begin readln(v,n); fillchar(f,sizeof(f),false); for i:=1 to n do read(c[i]); f[0]:=true; for i:=1 to n do for j:=v downto c[i] do f[j]:=f[j-c[i]] or f[j]; for i:=v downto 0 do if f[i] then begin writeln(v-i); break; end; end.
- 1
信息
- ID
- 1129
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者