POJ2663 Tri Tiling

Posted yu-xing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ2663 Tri Tiling相关的知识,希望对你有一定的参考价值。

  • 思路:

设a[i]为N=i时的方法数.i为奇数的时候肯定为0.

如果i为偶数,a[i]可以看成a[i-2]加上两个单位组成的,此时多出来的2单位有3种方法.

也可以看成a[i-4]加上四个单位组成的,此时这四个单位一定是连在一起的,中间不能分割,所以只有两种放法.

同理,可看成a[i-6]加上六个单位组成的,此时这六个单位也连在一起,不能分割,只有两种放法.

直到所有的砖块都是连在一起的,中间不能分割,也只有两种放法.

所以

a[i]=3a[i-2]+2(a[i-4]+a[i-6]+…+a[0]) ①

a[i-2]=3a[i-4]+2(a[i-6]+…a[0]) ②

①-②,得a[i]=4*a[i-2]-a[i-4].

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f[40],n;
int main(){
    f[0]=1;f[2]=3;
    for(int i=4;i<=30;i+=2) f[i]=(f[i-2]<<2)-f[i-4];
    while(1){
        scanf("%d",&n);
        if(n==-1) break;
        printf("%d
",f[n]);
    }
    return 0;
}

以上是关于POJ2663 Tri Tiling的主要内容,如果未能解决你的问题,请参考以下文章

POJ2663 Tri Tiling

POJ 2663 Tri Tiling dp 画图找规律

poj 2506 Tiling(大数+规律)

ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)

POJ 2506 Tiling

POJ3420 Quad Tiling矩阵快速幂