1065 01字符串

来源:互联网 发布:2k18奥尼尔捏脸数据 编辑:程序博客网 时间:2024/05/29 17:18
题目描述 Description

输出仅有0和1组成的长度为n的字符串,并且其中不能含有3个连续的相同子串。

输入描述 Input Description

输入文件只有一行一个整数n,表示有0和1组成的字符串的长度。0<=n<=30。

输出描述 Output Description

输出文件只有一行一个整数,表示所有满足条件的字符串的个数。

样例输入 Sample Input

1

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

#include <iostream>#include <cstdio>using namespace std;int n;int sum=0;int map[31]={0};void fun(int x){if(x>=n){sum++;return ;}if(x<2){map[x]=0;fun(x+1);map[x]=1;fun(x+1);}if(x>=2){if(map[x-2]==map[x-1]){if(map[x-1]==1){map[x]=0;fun(x+1);}else{map[x]=1;fun(x+1);}}else{map[x]=0;fun(x+1);map[x]=1;fun(x+1);}}}int main(){scanf("%d", &n);if(n==0){printf("%d\n",0);return 0;}fun(0);printf("%d\n", sum);return 0;}


0 0
原创粉丝点击