2018复旦大学计算机硕士招生复试上机题(3)-骨牌问题

题目描述:

骨牌。     2*n 的地板,用 1*2 2*1 的骨牌进行铺地板。问共有多少种情况。    结果对 999983 取余       1<=n<=10000
样例

           
           
入:
6
输出:
13

思路:

1.简单dp问题,地板铺设种类,满足斐波那契数列,dp[1]=1,dp[2]=2,dp[3]=3,dp[4]=5...........

2.迭代法计算dp[n]并对999983取模。

参考代码:
#include<cstdio>  
int n,dp[10010]={0};
int main()
{
	dp[1]=1,dp[2]=2;
	scanf("%d",&n);
	for(int i=3;i<=n;i++)
	{
		dp[i]=(dp[i-1]+dp[i-2])%999983;
	}
	printf("%d\n",dp[n]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/vir_lee/article/details/80378175