hdoj 2046 骨牌铺方格(递推)
来源:互联网 发布:诺基亚按键机java游戏 编辑:程序博客网 时间:2024/06/08 18:40
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
思路: 两种情况:
情况 1: 在长方形方格末尾竖着放一个牌, 就转化为2*(n-1)的问题; 情况2 : 在长方形方格末尾横着放两个牌,( 或则在放两张竖着放的牌, 但是由于情况1中包含这种情况, 因此不再计算), 就转化为2*(n-1)的问题; 递推关系式: dp[n]=dp[n-1]+dp[n-2];
#include<iostream>using namespace std;int main(){ int n; long long dp[52]; dp[1]=1; dp[2]=2; for(int i=3; i<=51; i++) dp[i]=dp[i-1]+dp[i-2]; while( cin>>n ) cout<<dp[n]<<endl;}
扩展一下: 在1×n的一个长方形方格中,用1×1、1×2、1×3的骨牌铺满方格,输入n
,输出铺放方案的总数
递推式: dp[i]=dp[i-1]+dp[i-2]+dp[i-3];这也很好理解
#include<iostream>using namespace std;int main(){ int n; long long dp[3000]; dp[0]=1; dp[1]=1; dp[2]=2; while( cin>>n &&n ) { if( n>2 ) { for(int i=3; i<=n; i++) dp[i]=dp[i-1]+dp[i-2]+dp[i-3]; } cout<<dp[n]<<endl; }}
0 0
- HDOJ 2046 骨牌铺方格 【递推】
- HDOJ-2046 骨牌铺方格(递推)
- hdoj 2046 骨牌铺方格(递推)
- hdoj 2046 骨牌铺方格(递推)
- HDU-2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格 递推
- hdu 2046 骨牌铺方格(递推)
- HDU 2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格 递推
- HDU 2046 骨牌铺方格(递推)
- 2046骨牌铺方格(递推)
- hdu 2046 骨牌铺方格【递推】
- HDU 2046 骨牌铺方格(简单递推)
- HDU 2046 骨牌铺方格(递推)
- HDU 2046 骨牌铺方格(递推+打表)
- 骨牌铺方格 (递推)
- 骨牌铺方格 + 递推
- 骨牌铺方格 递推
- oracle编程
- 为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence?)
- Android学习笔记开篇
- 提高工作效率的16条Android开发小经验
- Stack栈 链式存储 实现
- hdoj 2046 骨牌铺方格(递推)
- Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] -- B. "Or" Game (容斥定理)
- Strust+hibernate+strust2的整合方案(1)
- 【Halcon】Halcon与OpenCV介绍、比较
- 第十三周实践项目2.3-动物这样叫
- vim配置及插件安装管理(超级详细)
- 数据清洗的一些梳理
- HTML获取触发事件的元素id
- ios JSON NSString to NSMutableDictionary