#1031 骨牌覆盖
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注
在2N的一个长方形方格中,用一个12的骨牌排满方格。
问有多少种不同的排列方法。
例如:2 * 3的方格,共有3种不同的排法。(由于方案的数量巨大,只输出 Mod 10^9 + 7 的结果)
####Input
输入N(N <= 1000)
####Output
输出数量 Mod 10^9 + 7
####Input示例
3
####Output示例
3
###简单思路:
斐波那契数列,但递归会挂,所以用递推。
#####代码:
#include<bits/stdc++.h>
using namespace std;
long long a[1100]{1,1,0};//防爆
/*int f(int n) //递推挂……
{
if(n<=0) return 0;
else if(n==1) return 1;
else if(n==2) return 2;
else if(n==3) return 3;
else
return (((f(n-1)%1000000007)+(f(n-2)%1000000007))%1000000007);
}*/
int main()
{
int n,i;
cin>>n;
for(i=2;i<=n;i++)
a[i]=(((a[i-1]%1000000007)+(a[i-2]%1000000007))%1000000007); //改递推
cout<<a[n];
return 0;
}