1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int num[100],t,n; int check(int k) { for(int i=1;i<=k/3;i++) { int flag=1; for(int L=1;L<=i;L++) if(num[k-3*i+L]!=num[k-3*i+L+i]||num[k-3*i+L]!=num[k-3*i+L+i+i]) { flag=0; break; } if(flag) { return 0;} } return 1; } void dfs(int step) { if(step>n) { t++; return ; } for(int i=0;i<=1;i++) { num[step]=i; if(check(step)) dfs(step+1); } } int main() { scanf("%d",&n); num[1]=0; dfs(2); printf("%d\n",t*2); return 0; }
- 1
信息
- ID
- 2702
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者