讨论 / 大牛看看哪儿错了?
yllc 2009-08-03 01:40:00
点我顶贴 收藏 删除
我的程序:

var

a:array[-21..100,-79..100] of longint;

c:array[0..100,0..3] of longint;

t,k,n:longint;

procedure init;

var i,j:longint;

begin

read(t,k);

readln(n);

for i:=1 to n do

readln(c[i,1],c[i,2],c[i,3]);

end;

procedure work;

var i,j,s:longint;

begin

for i:=-21 to t do

for j:=-79 to k do

if (i>0) or (j>0) then a[i,j]:=maxint;

for i:=1 to n do

for j:=t downto 1 do

for s:=k downto 1 do

if (a[j,s]>a[j-c[i,1],s-c[i,2]]+c[i,3]) then

a[J,S]:=a[j-c[i,1],s-c[i,2]]+c[i,3];

writeln(a[t,k]);

end;

begin

init;

work;

end.

有两点挂掉!

大牛的程序(ac了)

program s1;

var

f:array[-21..21,-79..79]of longint;

a,b,c:array[1..1000]of integer;

i,j,k,n,y,d,max,min:longint;

begin

readln(y,d);

readln(n);

for i:=1 to n do readln(a[i],b[i],c[i]);

for i:=-21 to 0 do

for j:=-79 to 0 do

f[i,j]:=0;

for i:=-21 to y do

for j:=-79 to d do

if (i>0) or (j>0) then f[i,j]:=maxint;

for i:=1 to n do

for j:=y downto 1 do

for k:=d downto 1 do

if f[j-a[i],k-b[i]]+c[i]<f[j,k] then f[j,k]:=f[j-a[i],k-b[i]]+c[i];

write(f[y,d]);

end.

觉得很一样,为什么不对呢?

#1 yllc@2009-08-03 01:40:00
回复 删除
范围小了!!

晕!

查看更多回复
提交回复