hdu 2501 Tiling_easy version

递推公式:f[i]=f[i-1]+f[i-2]*2

思路:1、对于i-1个来说剩两个直接补一个2*1的即可,有f[i-1]种

2、对于i-2个来说,剩四个,有三种方法:a、一个2*2;b、两个横着的1*2;c、两个竖着的1*2,显然c中跟第一种冲突,所以有2*f[i-2]中

  题目传送门

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int k,i,n;
 5     long f[33]={0,1,3};
 6     for(i=3;i<31;i++)
 7         f[i]=f[i-1]+f[i-2]*2;
 8     scanf("%d",&k);
 9     while(k--)
10     {
11         scanf("%d",&n);
12         printf("%ld\n",f[n]);
13     }
14     return 0;
15 }

 

 

posted @ 2013-05-10 14:53  飞向梦  阅读(139)  评论(0编辑  收藏  举报