HDU - 2046骨牌铺方格 递推 - 斐波那契数列
2017-11-25 14:04
459 查看
题目连接:HDU - 2046
题目描述:
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
Sample Output
思路:就是简单递推,每增加一列,可以看成一下两种情况:
1.前n-1列加最后一列竖着摆
2.前n-2列加后两列横着摆
所以答案就是斐波那契数列!!
代码:
#include<stdio.h>
#include<string.h>
typedef long long ll ;
ll s[55] , dp[55] ;
int main() {
dp[0] = 1 ;
dp[1] = 1 ;
for( int i=2 ; i<=50 ; i++ ) dp[i] = dp[i-1] + dp[i-2] ;
int n ;
while( scanf("%d" , &n ) != EOF ) {
printf("%lld\n" , dp
) ;
}
return 0 ;
}
题目描述:
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1 3 2
Sample Output
1 3 2
思路:就是简单递推,每增加一列,可以看成一下两种情况:
1.前n-1列加最后一列竖着摆
2.前n-2列加后两列横着摆
所以答案就是斐波那契数列!!
代码:
#include<stdio.h>
#include<string.h>
typedef long long ll ;
ll s[55] , dp[55] ;
int main() {
dp[0] = 1 ;
dp[1] = 1 ;
for( int i=2 ; i<=50 ; i++ ) dp[i] = dp[i-1] + dp[i-2] ;
int n ;
while( scanf("%d" , &n ) != EOF ) {
printf("%lld\n" , dp
) ;
}
return 0 ;
}
相关文章推荐
- hdu 2046 骨牌铺方格(递推 斐波那契数列)
- HDU 2046 骨牌铺方格 递推
- HDU 2046 骨牌铺方格 递推
- HDU 2046 骨牌铺方格(递推)
- hdu 2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格(简单递推)
- HDU 2046 骨牌铺方格(递推)
- HDU-2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格【递推】
- 铺瓷砖问题 HDU 2046 骨牌铺方格 + POJ 2663 Tri Tiling (递推)
- hdu 2046 骨牌铺方格(递推)
- HDU-2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格 简单递推
- HDU 2046 骨牌铺方格(斐波那契递推 或者 状压DP)
- HDU__2046 骨牌铺方格
- HDU - 2046 骨牌铺方格
- hdoj 2046 骨牌铺方格(递推)
- (step3.1.3)hdu 2046(骨牌铺方格)
- HDU 2046 骨牌铺方格
- HDU 2046 骨牌铺方格