链接:http://acm.hdu.edu.cn/showproblem.php?pid=2045
判断N=i时,分两种情况,
1: 第1位==第i-1位
因为第一位与倒数第二位相同,所以第i位可以取剩下两种颜色
2:第1位!=第i-1位
第i位只能取剩下的一种颜色
#include <iostream>
#define MAX_N 50
using namespace std;
long long f[MAX_N+1];
int main()
{
int n;
f[1]=3;
f[2]=6;
f[3]=6;
for(int i=4;i<=MAX_N;i++)
f[i]=f[i-1]+f[i-2]*2;
while(cin>>n)
{
cout<<f[n]<<endl;
}
return 0;
}