zoukankan      html  css  js  c++  java
  • HDOJ.2501 Tiling_easy version

    Tiling_easy version

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 7450 Accepted Submission(s): 5772

    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

    题意分析:

    考察递推关系,有特殊到一半的归纳法。可以先画2*1的格子,然后画2*2的格子,然后画2*3的格子,分别数一下他们格子有几种。不难推出有a[n] = a[n-1] + 2 * a[n-2] (n>=3)的递推关系。
    之后可以写好程序,输入样例检验一下自己的想法是是否正确。

    代码:

    /*
        Title:HDU.2501
        Date:2016-10-24
        Author:pengwill
        Blog:http://blog.csdn.net/pengwill97/
    
    */
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        __int64 a[31];
        a[1] = 1;a[2] = 3;
        int n,i,k;
        for(i =3;i<=30;i++){
            a[i ] = 2 * a[i-2] + a[i-1];
        }
        scanf("%d",&n);
        while(n--){
            scanf("%d",&k);
            printf("%I64d
    ",a[k]);
        }
        return 0;
    }
  • 相关阅读:
    set使用
    css盒子模型详解一
    列表页调用当前栏目的子类织梦标签
    织梦如何在导航栏下拉菜单中调用当前栏目子类
    HDU1812
    BZOJ1485: [HNOI2009]有趣的数列
    组合数学学习笔记
    Full_of_Boys训练2总结
    Full_of_Boys训练1总结
    FFT算法学习笔记
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367264.html
Copyright © 2011-2022 走看看