讨论 / 为什么只有10分?
兔斯基 2011-05-14 21:48:00
点我顶贴 收藏 删除
var

p,v:array[1..10000,0..2]of longint;

f:array[0..32000]of longint;

i,j,k,m,n,a,b,c,v0,v1,v2,p0,p1,p2:longint;

begin

assign(input,'e:/1.in');

reset(input);

read(n,m);

n:=n div 10;

for i:=1 to m do

begin

read(a,b,c);

if c=0 then c:=i;

for j:=0 to 2 do

if v[c,j]=0 then

begin

v[c,j]:=a div 10;

p[c,j]:=v[c,j]*b;

break;

end;

end;

for i:=1 to m do

if v[i,0]<>0 then

begin

v0:=v[i,0];

v1:=v[i,1];

v2:=v[i,2];

p0:=p[i,0];

p1:=p[i,1];

p2:=p[i,2];

for j:=n downto 0 do

begin

if (j>=v0)and(f[j]<f[j-v0]+v0*p0)then

f[j]:=f[j-v0]+p0;

if (j>=v0+v1)and(f[j]<f[j-v0-v1]+v0*p0+v1*p1)then

f[j]:=f[j-v0-v1]+p0+p1;

if (j>=v0+v2)and(f[j]<f[j-v0-v2]+v0*p0+v2*p2)then

f[j]:=f[j-v0-v2]+p0+p2;

if (j>=v0+v1+v2)and(f[j]<f[j-v0-v1-v2]+v0*p0+v1*p1+v2*p2)then

f[j]:=f[j-v0-v1-v2]+p0+p1+p2;

end;

end;

writeln(f[n]*10);

end.

遗憾的只过了第二个点,有没有知道为什么的,结果与正确结果相差也不是太多,我稍微得给简略的一下,但是找不出来错误在哪里,希望能看出来的帮帮忙谢谢!

#1 兔斯基@2011-05-14 21:44:00
回复 删除
题目是金明的预算方案

我调试了好几次也不对

#2 兔斯基@2011-05-14 21:48:00
回复 删除
呃 没人么 - -

-

查看更多回复
提交回复