求解for i:=1 to c do

var k,m:array[0..10000] of longint;
    f:array[0..10000] of longint;
    i,j,n,v,c:longint;

    function max(a,b:longint):longint;
    begin
      if a>b then exit(a) else exit(b);
    end;

begin
  readln(v,n,c);
  for i:=1 to n do readln(k[i],m[i]);
 
 for i:=1 to c do
   for j:=c downto m[i]  do
     f[j]:=max(f[j-m[i]]+k[i],f[j]);
  for i:=0 to c do if f[i]>=v then begin writeln(c-i);halt;end;
  writeln('Impossible');
end.

为什么for i:=1 to c 有几个数据错 而 for i:=1 to n 就对

3 条评论

  • 1

信息

ID
1625
难度
5
分类
动态规划 | 背包 点击显示
标签
递交数
3733
已通过
1354
通过率
36%
被复制
12
上传者