关于“字符序列”的问题

图片说明
我不会做,想也想不出来,求大神们帮忙!!!学习的是c++

#include

#include

#include

using namespace std;

int n,ans=0,a[10001];

void dfs(int dep)

{

int i;

if (dep==n+1)

{

ans++;

return;

}

for (i=1;i<=3;++i)//集合中只有A,B,C

if (dep=4的序列只需要当前点和dep-2点,dep-1点和dep-3

{ //点是否都相同。还是比较好处理的。

a[dep]=i;

dfs(dep+1);

}

return;

}

int main()

{

scanf("%d",&n);

dfs(1);

printf("%d",ans);

return 0;

}

这个代码还是错的,求改正!!!