zoukankan      html  css  js  c++  java
  • [Jobdu] 题目1390:矩形覆盖

    题目描述:

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 

    输入:

    输入可能包含多个测试样例,对于每个测试案例,

    输入包括一个整数n(1<=n<=70),其中n为偶数。

    输出:

    对应每个测试案例,

    输出用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有的方法数。

    样例输入:
    4
    样例输出:
    5

    其实就是跳台阶!

    /*把长条n*2的覆盖问题分解,第一步,若竖着覆盖一个2*1的方块,那么剩下的为2*(n-1)块,
    否则,若横着覆盖,应用两块,覆盖一个2*2的块,剩下2*(n-2),这两种覆盖的方式都各有一种
    于是,这个问题等同于递归f(n)=f(n-1)+f(n-2)*/

     1 #include <iostream>
     2 using namespace std;
     3 
     4 long long res[71];
     5 
     6 void init()
     7 {
     8     res[0] = 1;
     9     res[1] = 1;
    10     for (int i = 2; i < 72; i++) {
    11         res[i] = res[i-1] + res[i-2];
    12     }
    13     return;
    14 }
    15 
    16 int main()
    17 {
    18     init();
    19     int n;
    20     while (cin >> n) {
    21         cout << res[n] << endl;
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    java.lang.IllegalArgumentException: node to traverse cannot be null!
    c3p0连接池的使用
    eclipse插件
    eclipse字体颜色设置
    oracle增删改查
    resultMap / resultType
    oracle 序列 ,check约束
    JSP:一种服务器端动态页面技术的组件规范。
    js
    字体
  • 原文地址:https://www.cnblogs.com/easonliu/p/3654672.html
Copyright © 2011-2022 走看看