讨论 / 60求找错...
wwx12 2013-10-04 22:44:00
点我顶贴 收藏 删除
program jinming3;

type

rec=record

w0,v0,w1,v1,w2,v2:longint

end;

var

a:array [1..100] of rec;

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

b:array [0..100] of longint;

i,j,m,n,w,v,q,s,k:longint;

begin

read(n,m);

for i:=1 to m do

begin

read(w,v,q);

if q=0 then

begin

inc(k);

a[k].w0:=w;

a[k].v0:=w*v

end

else

begin

if b[q]=0 then

begin

inc(b[q]);

a[q].w1:=w;

a[q].v1:=w*v;

continue

end

else

begin

inc(b[q]);

a[q].w2:=w;

a[q].v2:=w*v

end

end

end;

for i:=1 to k do

for j:=n downto 0 do

begin

if (j>=a[i].w0) and (f[j]<f[j-a[i].w0]+a[i].v0) then

f[j]:=f[j-a[i].w0]+a[i].v0;

if (j>=a[i].w0+a[i].w1) and

(f[j]<f[j-a[i].w0-a[i].w1]+a[i].v0+a[i].v1) then

f[j]:=f[j-a[i].w0-a[i].w1]+a[i].v0+a[i].v1;

if (j>=a[i].w0+a[i].w2) and

(f[j]<f[j-a[i].w0-a[i].w2]+a[i].v0+a[i].v2) then

f[j]:=f[j-a[i].w0-a[i].w2]+a[i].v0+a[i].v2;

if (j>=a[i].w0+a[i].w1+a[i].w2) and

(f[j]<f[j-a[i].w0-a[i].w1-a[i].w2]+a[i].v0+a[i].v1+a[i].v2) then

f[j]:=f[j-a[i].w0-a[i].w1-a[i].w2]+a[i].v0+a[i].v1+a[i].v2

end;

writeln(f[n])

end.

#1 voleking@2013-10-04 06:23:00
回复 删除
艾玛我也是
#2 ak8877@2013-10-04 09:26:00
回复 删除
把主件单独抽出来了么? 貌似单独抽出来只能60 我也是这么做的 只有60分

#3 wwx12@2013-10-04 22:40:00
回复 删除
回复 板凳ak8877 的帖子

这题我交了6次- -

#4 wwx12@2013-10-04 22:41:00
回复 删除
回复 沙发voleking 的帖子

感觉写的没错呀怎么才60怎么会这样- -!!!

#5 wwx12@2013-10-04 22:44:00
回复 删除
回复 板凳ak8877 的帖子

是主副件绑一起了的。。

查看更多回复
提交回复