HDU 2501 Tiling_easy version
2014-07-23 15:27
295 查看
Tiling_easy version
Problem Description有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。
Input
输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列。
Output
输出一共有多少种铺设的方法,每组数据的输出占一行。
Sample Input
3 2 8 12
Sample Output
3 171 2731
a
= a[n-1] + 2 * a[n-2]
我的想法[思路上先处理1个2*1或者2*2的,因为有这两种格子]:
先放2*1(竖着):a[n-1];(横着):a[n-2] 【剩下n-2列,所以是a[n-2]】
先放2*2:a[n-2]
别人想法[思路上先放其他的]:
1.这个格竖着放一个2*1的骨牌,这种情况和data[i-1] 数量相同
2.这个新增加和格和它前面那个格合起来放一个2*2的骨牌,这种情况和data[i-2]的数量相同
3.这个新增加的格和它前面那个格合起来横着放两个2*1的骨牌,这种情况和data[i=2]数量
也相同
include<stdio.h> int main() { int n,i,t; int a[32]={1,1,3}; for(i=3;i<=31;i++) a[i]=a[i-1]+2*a[i-2]; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",a ); } return 0; }
相关文章推荐
- HDU-2501 Tiling_easy version 递推
- hdu-2501-Tiling_easy version
- HDU 2501 Tiling_easy version
- (step 3.1.6)hdu 2501(Tiling_easy version)
- HDU 2501 Tiling_easy version
- HDU 2501--Tiling_easy version【递推】
- hdu 2501--Tiling_easy version
- hdu--2501--Tiling_easy version
- hdu 2501 Tiling_easy version 递推
- hdu 2501 Tiling_easy version
- hdu 2501 Tiling_easy version
- hdu 2501 Tiling_easy version (水题)
- 递推--HDU 2501Tiling_easy version
- HDU - 2501 - Tiling_easy version (简单递推关系!!)
- hdu-2501-Tiling_easy version
- HDU 2501 Tiling_easy version(dp)
- HDU 2501 Tiling_easy version (递推)
- hdu 2501 Tiling_easy version
- HDU 2501 Tiling_easy version
- hDU 2501-Tiling_easy version