讨论 / 求帮忙
875880923 2011-11-05 22:39:00
点我顶贴 收藏 删除
我是新手 完全背包 帮个忙

program ti;

const n=10;

var f:array[0..200]of longint;

c,w:array[1..10]of longint;

i,j,k,v:longint;

begin

for i:=1 to n do begin

read(w[i]); c[i]:=i; end;

readln(v);

fillchar(f,sizeof(f),maxlongint);

for i:=1 to n do

for j:=0 to v do begin

k:=0;

repeat

inc(k);

if (v-k*c[i])<0 then break

else if f[j]>f[j-k*c[i]]+k*w[i] then

f[j]:=f[j-c[i]]+w[i];

until true;

end;

writeln(f[v]);

end.

#1 冯学良@2011-11-04 05:18:00
回复 删除
哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇

第十行的fillchar(f,sizeof(f),maxlongint);改为fillchar(f,sizeof(f),0);试试,自己上机调吧

#2 875880923@2011-11-05 22:39:00
回复 删除
回复 沙发冯学良 的帖子

我是求最小 怎么办 谢了

查看更多回复
提交回复