讨论 / 大家看看我的程序有什么问题..有悬赏的..
f(x) 2009-06-13 04:25:00
点我顶贴 收藏 删除
program keepup;

type ddd= record

v,t,h,w:longint;

end;

var f:array[0..300,0..300] of longint ;

a:array[0..200,0..200] of ddd;

c:array[0..300] of longint;

temp:ddd;

i,j,k,m,tt,n,s,t,z,x,y,u,v:longint;

f1:text;

function max(a,b:longint):longint;

begin

max:=a;

if max< b then max:= b;

end;

begin

assign(f1,’zin.in’);

reset(f1);

read(f1,n,m,tt);

for i:= 1 to n do

read(f1,a[i,1].v,a[i,1].t,a[i,1].h,a[i,1].w);

close(f1);

for i:= 1 to n-1 do

for j:= i+1 to n do

if a[i,1].v<a[j,1].v then

begin

temp:=a[i,1];

a[i,1]:=a[j,1];

a[j,1]:=temp;

end;

i:=1; m:=n;

for j:= 1 to n do c[j]:=1;

repeat

if a[i,1].v<>a[i+1,1].v then inc(i)

else

begin

inc(c[i]);

a[i,c[i]].h:=a[i+1,1].h;

a[i,c[i]].v:=a[i+1,1].v;

a[i,c[i]].t:=a[i+1,1].t;

a[i,c[i]].w:=a[i+1,1].w ;

dec(m);

for j:=i+1 to m do

begin

temp:=a[j+1,1];

a[j,1]:=temp;

end;

end;

until i=m;

n:=m;

for i:= 1 to n do

for j:= m downto 0 do

for k:= tt downto 0 do

for x:=1 to c[i] do

if (a[i,x].t+k<=tt)and(a[i,x].h+j<m) then

f[j+a[i,x].h,k+a[i,x].t]:=max(f[j+a[i,x].h,k+a[i,x].t],f[j,k]+a[i,x].w);

z:=-maxlongint;

for i:= 1 to m-1 do

for j:= 1 to tt do

z:=max(z,f[i,j]);

writeln(z);

end.

#1 hades@2009-04-26 05:19:00
回复 删除
你的程序好麻烦哦

PROGRAM DFG;

var

value,t,h,w:array[0..100] of longint;

a:array[0..100,0..100] of longint;

i,j,k,m,n,l,tm,em:longint;

begin

readln(n,em,tm);

em:=em-1;

for i:=1 to n do

readln(value[i],t[i],h[i],w[i]);

for i:=1 to n do

for j:=tm downto t[i] do

for k:=em downto h[i] do

if a[j,k]<a[j-t[i],k-h[i]]+w[i] then

a[j,k]:=a[j-t[i],k-h[i]]+w[i];

writeln(a[tm,em]);

end.

#2 小小小学生@2009-04-27 02:11:00
回复 删除
数据弱给LS过了

我记得以前我做要排序的。

#3 @2009-04-28 02:59:00
回复 删除
排什么序呀,选是刘翔的事,找选哪个是我的事!!!!!!
#4 f(x)@2009-05-01 03:12:00
回复 删除
额~~ 不排序遇到一样的怎么办...
#5 f(x)@2009-05-01 03:18:00
回复 删除
第一行n,m,t(n,m,t<=100)

第二行到n+1行,每行4个数,value,time,h,w

3 5 100

5 2 2 3000

5 2 2 3000

3 1 1 30

不考虑价值相等可以过吗?

#6 wish@2009-05-01 03:21:00
回复 删除
应该要排序吧...

主要就是处理相等的情况

#7 f(x)@2009-06-10 06:06:00
回复 删除
顶!..

#8 hades@2009-06-10 06:10:00
回复 删除
这题似乎和VALUE的值没关系吧,读题能读出来的……

我本以为只有我的语文堕落呢!

#9 f(x)@2009-06-10 06:13:00
回复 删除
主要是处理vaule一样的问题..

不是普通的二维背包...

#10 hades@2009-06-10 06:20:00
回复 删除
不是只让输出“最大的鼓舞”吗?而且也只让求最大的鼓舞值的,而鼓舞值的决定只与两个花费有关,至于欣赏价值,即使欣赏价值相同的情况,还是由鼓舞之决定的,SO,SO,SO,本小菜认为鼓舞值和解题无关,个人意见,与本题正解无关。
查看更多回复
提交回复