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