我不会做,想也想不出来,求大神们帮忙!!!学习的是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;
}
这个代码还是错的,求改正!!!