讨论 / 贴核心
linshutan 2009-10-28 20:53:00
点我顶贴 收藏 删除
qsort(1,n);

for i:=1 to n do

begin

for k:=t downto 0 do

for j:=t downto 0 do

begin

if j>=a[i].final then f[j,k]:=max(f[j,k],f[a[i].start-1,k]+a[i].w);

if k>=a[i].final then f[j,k]:=max(f[j,a[i].start-1]+a[i].w,f[j,k]);

end;

end;

#1 没13@2009-10-28 20:53:00
回复 删除
加句解释

f[j,k]表示 第一个工作到第j时刻,第二个工作到第k时刻的最大收益 故

f[j,k]:=max { f[j,k] {{不放第i个药品}}

f[i.strat-1,k]+i.w {{第i个加入到第一个中

f[j,i.strat-1]+i.w {{第i个加入到

第二个中

查看更多回复
提交回复