讨论 / 大牛帮帮忙!
qdzcslj 2008-05-31 07:16:00
点我顶贴 收藏 删除
如此动归哪错了阿?(最后一个点栈溢出)

function ff(x:longint):longint;

begin

if f[x]<>-1 then ff:=f[x]

else begin

if a[x]=1 then f[x]:=min(s[x],ff(x-1)+1)

else f[x]:=min(s[x]+1,ff(x-1));

ff:=f[x];

end;

end;

注:s[x]纪录第x个数前有多少个2,f[1]初始为0,其余为-1。f[x]在是1或是2中去最小的。

查看更多回复
提交回复