• 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;
    }
    
    

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

  • 相关阅读:
    centos 7安装配置vsftpd
    lvs和haproxy机器必须注意的三个参数
    用python 脚本实现zabbix对java端口报警
    git的下载地址
    看的一篇很好的博客
    学习内容
    数组一些用法
    dom
    dom1
    for的基础
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319578.html
Copyright © 2020-2023  润新知