字符序列(模拟)
#include<iostream> using namespace std; int n,sum=0; int ans[15]; bool judge() { int cnt=0; for(int i=3; i<=n; i++) { if(ans[i]==ans[i-2]) { cnt++; } else { cnt=0; } if(cnt==2) { return 0; } } return 1; } void dfs(int x) { if(x == n + 1) { if(judge()) { sum++; } return; } for(int i=1; i<=3; i++) { ans[x]=i; dfs(x+1); } } int main() { cin>>n; dfs(1); cout<<sum; return 0; }