讨论 / 这题测试数据没问题?
qdzcslj 2008-05-31 07:15:00
点我顶贴 收藏 删除
怎么会最后一个点栈溢出呢?不是说n<=30000吗?

#1 qdzcslj@2008-05-31 07:15: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中去最小的。

查看更多回复
提交回复