标签:style blog color io ar 问题 cti div
[问题描述]输入仅由0/1组成的长度为n的字符串,并且其中不可含有三个连续的相同子串。
输入:字符串的长度n(n<=40)。
输出:所有满足条件的字符串的个数
[样例输入]
2
4
var a:array[1..40]of byte;//0/1序列 tot:longint; L:integer;//位指针 n:integer; function judge(L:integer):boolean; var x,y,z:integer;r,q,p:integer; begin x:=L;y:=L-1;z:=L-2;//指针初始化 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);//如果三个子串完全一样就返回false dec(x,1);dec(y,2);dec(z,3); end; exit(true); end; procedure search(L:integer); begin if L>n then begin inc(tot,2); exit; end; a[L]:=0; if judge(L) then search(L+1); a[L]:=1; if judge(L) then search(L+1); end; begin readln(n); a[1]:=0; L:=1; tot:=0; search(2); writeln(tot); end.
回溯法第6题—0/1字符串问题,布布扣,bubuko.com
标签:style blog color io ar 问题 cti div
原文地址:http://www.cnblogs.com/cuichen/p/3912875.html