传送门:HDU-2045
典型的递推题目,特殊到一般,推出递推方程式,迭代即可。代码如下:
#include<stdio.h>
int main() {
int i;
long long dp[51];
dp[1]=3;
dp[2]=6;
dp[3]=6; // 3个格子,最后一个没得选择,所以也是6种情况
for(i=4;i<51;i++)
dp[i]=dp[i-1]+dp[i-2]*2; // i-1与i-2不同色,i没得选。 i-1与i-2同色,i-1没得选,直接是(i-2)*2
while(scanf("%d",&i)!=EOF)
printf("%lld\n",dp[i]);
return 0;
}