讨论 / [悬赏] 0/1字串问题 80分 超时 如何优化?
小号一个 2011-10-15 21:32:00
点我顶贴 收藏 删除
程序如下:

program li;

var n,ans:longint;

a:array[-1..41] of longint;

function ff(l:longint):boolean;

var x,y,z,p,q,r:longint;

begin

x:=l; y:=x-1; z:=y-1;

while z>0 do

begin

p:=x; q:=y; r:=z;

while (r<y) and (a[p]=a[q]) and (a[q]=a[r]) do

begin inc(p); inc(q); inc(r); end;

if r=y then exit(false);

dec(x); dec(y,2); dec(z,3);

end;

exit(true);

end;

procedure doit(l:longint);

begin

if l=n then begin ans:=ans+2; exit; end;

a[l+1]:=0;

if ff(l+1) then doit(l+1);

a[l+1]:=1;

if ff(l+1) then doit(l+1);

end;

begin

readln(n);

a[1]:=0; ans:=0;

doit(1);

writeln(ans);

end.

#1 小号一个@2009-06-18 03:15:00
回复 删除
没人理,顶起~
#2 小小小学生@2009-06-27 02:21:00
回复 删除
D
#3 zrp@2009-06-27 23:27:00
回复 删除
...可怜的学生哥
#4 小小小学生@2009-07-12 07:06:00
回复 删除
月黑风高夜,我再无力地弱弱顶起。。。。
#5 小小小学生@2009-07-26 02:59:00
回复 删除
UP~
#6 lijiaming12340@2011-10-15 21:32:00
回复 删除
饿
查看更多回复
提交回复