1. 程式人生 > >51Nod1031 骨牌覆蓋(遞推)

51Nod1031 骨牌覆蓋(遞推)

這道題第一反應是用記憶化搜尋,但是數了數n為前5幾種情況,發現居然是遞推公式!

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const ll Mod=1e9+7;
ll dp[1000];
int main()
{	
	ll n,i;
	cin>>n;
	dp[1]=1;
	dp[2]=2;
	for(i=3;i<=n;i++)
		dp[i]=(dp[i-2]+dp[i-1])%Mod;
	cout<<dp[n]<<endl;
	return 0; 
}