zoukankan      html  css  js  c++  java
  • Domino

    题目描述
    Alice最近在玩多米诺骨牌,她突发奇想,想用她的骨牌去铺一个2×n的长方形。Alice的骨牌是1×2的长方形木片,在铺骨牌的过程中她希望能满足如下要求:
    1.骨牌必须横向或竖向放置;
    2.骨牌不能超出2×n的长方形的边界;
    3.骨牌之间不能有重叠;
    4.骨牌需要将长方形铺满(即,铺2×n的长方形需要用n块骨牌)。
    请问Alice有多少种方案,用1×2的骨牌铺满2×n的长方形?
    例如,n=3时,铺2×3的长方形,骨牌的铺放方案有三种,如下图:

    输入
    输入一行,一个正整数n(3≤n≤1000),表示要铺满的长方形的大小为2×n。

    输出
    输出一个数,为满足上述要求的骨牌铺放方案数除以1,000,000,007的余数。

    样例输入
    复制样例数据
    3
    样例输出
    3

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        long long int n,m=1,k=2,s=0,x;
        scanf("%lld",&n);
        for(int i=3;i<=n;i++)
        {
            s=m+k;
            if(s>1000000007)
             s=s%1000000007;
             m=k;
             k=s;
        }
    
        printf("%d
    ",s);
        return 0;
    }
    
    

    斐波那契数列,还有取模。

  • 相关阅读:
    第一章
    第一章 计算机系统漫游
    hihocoder #1014 : Trie树
    第一章
    来个小目标
    poj 1056 IMMEDIATE DECODABILITY
    poj 2001 Shortest Prefixes
    __name__ 指示模块应如何被加载
    Python 常用函数time.strftime()简介
    CentOS安装beEF做XSS平台
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319578.html
Copyright © 2011-2022 走看看