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中去最小的。