讨论 / 请教:s=t为何要单独讨论???
青龙白狐 2012-08-26 06:41:00
点我顶贴 收藏 删除
我觉得s=t不需要单独讨论呀,但不讨论过不了......

附程序,请大牛指点,谢!

var i,j,m,n,k,p,l,min,kk:longint;

f:array[0..9000] of 0..1;

flog:array[0..9000] of longint;

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

s,t:longint;

begin

readln(l);

readln(s,t,m);

for i:=1 to m do read(a[i]);

if s=t then

begin

kk:=0;

for i:=1 to m do

if a[i] mod s=0 then inc(kk);

writeln(kk);

halt

end;

for i:=1 to m-1 do

for j:=i+1 to m do

if a[i]>a[j] then

begin

p:=a[i];

a[i]:=a[j];

a[j]:=p

end;

a[0]:=0;

fillchar(f,sizeof(f),0);

for i:=0 to m-1 do

if a[i]<a[i+1]-80 then

begin

kk:=a[i+1]-a[i]-80;

for j:=i+1 to m do

a[j]:=a[j]-kk

end;

for i:=1 to m do

inc(f[a[i]]);

for i:=0 to a[m] do flog[i]:=1000;

for i:=a[m] downto 0 do

for j:=s to t do

if flog[i]>flog[i+j]+f[i] then

flog[i]:=flog[i+j]+f[i];

writeln(flog[0])

end.

#1 青龙白狐@2009-04-28 02:47:00
回复 删除
自己顶一下......无语
#2 青龙白狐@2009-05-01 02:28:00
回复 删除
再顶,没人理我......

#3 wish@2009-05-01 02:34:00
回复 删除
肯定要讨论

s=t 的时候每次跳过的距离是固定的

这本来对方程没有影响

但是为了优化,你的距离是压缩过的,所以就会错掉

#4 青龙白狐@2009-05-01 04:14:00
回复 删除
谢了,忘了是压缩过的了,净想着不压缩时不讨论也对了......
#5 Hope_YC@2012-08-26 06:41:00
回复 删除
我没有单独讨论AC了。。
查看更多回复
提交回复