HDU 2501 Tiling_easy version (递推)
来源:互联网 发布:我的世界编程网站 编辑:程序博客网 时间:2024/05/01 15:51
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
有一个大小是 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
思路:很明显的递推题,因为有两块骨牌,从N=3开始,先考虑后边,如果最后放2*1的骨牌,那么有a[n-1]种放法;如果最后放2*2的骨牌,有可能放两个横着的2*1的骨牌,也有可能是一个2*2的骨牌,所以共有2*a[n-2]种放法,故递推式为a[n]=a[n-1]+2*a[n-2];
AC代码:
#include<stdio.h>int main(){ int t,n; int a[45]; a[0]=1; a[1]=1; a[2]=3; int i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=3;i<=n;i++) a[i]=a[i-1]+a[i-2]*2; printf("%d\n",a[n]); } return 0;}
1 0
- 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
- hdoj 2501 Tiling_easy version(递推)
- HDOJ 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
- oracle insert select 语句中 select数量与insert数量不一致 bug(咋个办呢 zgbn)
- 常用正则表达式
- 5.6.2 视图对性能的影响
- MySQL 主从复制
- iOS端项目注释规范附统一代码块
- HDU 2501 Tiling_easy version (递推)
- LeetCode40. Combination Sum II
- SharePoint 2016 Beta 2 使用体验
- 1076. Forwards on Weibo (30)
- db2中释放PndFreePgs
- 记录抽取
- 排序算法
- python开发环境搭建
- bash shell中expr命令下几种的使用