讨论 / 关于初值的一个疑问.
zsx 2009-09-08 05:52:00
点我顶贴 收藏 删除
为什么P=MAXLONGINT不过

而P=MAXINT却过了?

程序如下:

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

n,m,t,i,j,k,x,p,y,h,o:longint;

begin

read(m,t,n);

p:=maxint;

for i:=-21 to 21 do

for j:=-79 to 79 do

if (i>0)or(j>0) then

a[i,j]:=p;

for i:=1 to n do begin

read(x,y,o);

for j:=m downto 1 do

for k:=t downto 1 do

if a[j-x,k-y]+o<a[j,k] then a[j,k]:=a[j-x,k-y]+o;

end;

write(a[m,t]);end.

#1 webeskycn@2009-09-08 05:52:00
回复 删除
if a[j-x,k-y]+o<a[j,k] then a[j,k]:=a[j-x,k-y]+o;

maxlongint 会使你这一句溢出变为负值。

查看更多回复
提交回复