51Nod 1031 骨牌覆盖 | Fibonacci

Posted kimsimple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1031 骨牌覆盖 | Fibonacci相关的知识,希望对你有一定的参考价值。

 

Input
输入N(N <= 1000)
Output
输出数量 Mod 10^9 + 7
Input示例
3
Output示例
3

思路:对于第x块骨牌的情况,我们用a[x]表示其方法数;其比x-1块骨牌时多了一块骨牌,多出的骨牌有两种放法:

1.我们可以直接将其竖着添加在最末端,那么其排列数就为就是前x-1块骨牌的排列数,即为a[x-1];

2. 我们也可以将其和其前面一块骨牌一起横着放,那么其排列数就是前x-2块骨牌的排列数,即为a[x-2];

所以有 a[x]=a[x-1]+a[x-2];

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define rep(i,a,n) for(int i = a; i < n; i++)
#define repe(i,a,n) for(int i = a; i <= n; i++)
#define per(i,n,a) for(int i = n; i >= a; i--)
#define clc(a,b) memset(a,b,sizeof(a))
#define INF 1e18+100
#define N 1010
#define MOD 1010
typedef long long LL;

const int mod=1e9+7;

int main(){
    int a[N], n;
    a[0]=1, a[1]=1;
    scanf("%d",&n);
    for(int i=2; i<=n; i++){
        a[i]=(a[i-1]+a[i-2])%mod;
    }
    printf("%d\\n",a[n]);
    return 0;
}

 

感谢:http://www.cnblogs.com/geloutingyu/p/6280350.html

以上是关于51Nod 1031 骨牌覆盖 | Fibonacci的主要内容,如果未能解决你的问题,请参考以下文章

51nod1031(简单斐波拉契数列)

1031 骨牌覆盖

随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3

做题51NOD1518 稳定多米诺覆盖——容斥&dp

1007 正整数分组 1010 只包含因子2 3 5的数 1014 X^2 Mod P 1024 矩阵中不重复的元素 1031 骨牌覆盖

51nod1033