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 }
  • 相关阅读:
    cocos2dx-lua UI编辑器的设计思路
    软件中Undo(撤回)和Redo(重做)的实现
    Cocos2d-x上适合做工具的UI库:ImGui
    静态成员
    命名空间
    类对象的初始化
    函数的重载、重写与隐藏
    类的继承关系与访问限定符
    多继承
    友元函数与友元类
  • 原文地址:https://www.cnblogs.com/easonliu/p/3654672.html
Copyright © 2011-2022 走看看