hdu 2045 不容易系列之(3)—— LELE的RPG难题

http://acm.hdu.edu.cn/showproblem.php?pid=2045

a(1)=3;a(2)=6;a(3)=6;a(4)=18;

现在考虑n>3的情况,若第n-1个格子和第一个格子不同,则为a(n-1);

若第n-1个格子和第1个格子相同,则第n-2个格子和第一个格子必然不同,此时为a(n-2)再乘第n-1个格子的颜色数,很显然第n-1个格子可以是第一个格子(即第n-2个格子)的颜色外的另外两种,这样为2*a(n-2);

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <math.h>

int main()

{

    __int64 a[55]={0,3,6,6};

    int n;

    for(int i=4;i<=55;++i)

    a[i]=a[i-1]+2*a[i-2];

    while(scanf("%d",&n)!=EOF)

    printf("%I64d\n",a[n]);

    return 0;

}

posted @ 2011-08-11 18:04  ○o尐懶錨o  阅读(227)  评论(0编辑  收藏  举报