2045--着色问题

有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

##


如果最后一个格子可以和第一个相同,则很简单n个格子的染法为3*2^(n-1)种

那最后一个格子必须想通只需3*2^(n-1)减去最后一个格子与第一个格子相同的染法种数,而当第一个格子与最后一个格子相同时,恰好为此题n-1个格子时的染法种数。
可得出递推r(n) = 3*2^(n - 1) - r(n - 1) 从第三项开始符合递推。

、、、、、、、
或者找规律吧。

#include<stdio.h>
int main()
{
    int i,n;
    long long a[55]={3,6,6};
        for (i=3;i<55;i++)
            a[i]=a[i-1]+2*a[i-2];
    while (scanf ("%d",&n)!=EOF)
    {
        printf ("%lld\n",a[n-1]);
    }
    return 0;
}
发布了41 篇原创文章 · 获赞 0 · 访问量 8105
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章