http://acm.hdu.edu.cn/showproblem.php?pid=2045
如果n-1的颜色和1相同,那么n有两种走法,如果n-1 的颜色和1不同,那么n只有1种选择方法
公式就是f(n)=f(n-1)+2*f(n-2);
注意最后的结果是long long的范围
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<string.h> 5 using namespace std; 6 long long a[105]; 7 8 int main() 9 { 10 int t,n; 11 while(cin>>n){ 12 13 a[1]=3; 14 a[2]=6; 15 a[3]=6; 16 for(int i=4;i<=n;i++){ 17 a[i]=a[i-1]+2*a[i-2]; 18 } 19 cout<<a[n]<<endl; 20 21 } 22 }