【SeedCoder2015年 热身题4 动态规划】贴瓷砖 (题目+答案)

【问题】

现有2×n的空间需要用1×2的板子(无穷个,可旋转),那么总共有多少种填充方式。(其中,0≤n≤50,注意边界值)

【输入】

输入由一系列的测试样例构成,每一个测试样例占据一行,包含一个整数n。

【输出】

对于每一次输出样例,输出可能的填充方式。每一次输出样例另起一行。

【示例输入】

0

7

【示例输出】

0

21

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【解答】

递归数列可以从下式推出:


【示例代码(动态规划)】

//--------------------------------------【程序说明】-------------------------------------------
//		程序说明:瓷砖问题
//		程序描述:动态规划
//		IDE版本:Visual Studio 2013
//		作者:Arthur Lee
//------------------------------------------------------------------------------------------------  

//【1】头文件
#include <fstream>
#include <ctime>

using namespace std;

const int MaxColumn = 50;
#define TIMER
//【2】函数声明
void InitialData(int);
int Calculate(int);
//【3】定义枚举体,在几种方法中切换
enum Method
{

};
enum Shape
{
	Tile_1_2,
	Tile_2_1
};
//【4】变量声明
int DP[MaxColumn];

int main(){
#ifdef TIMER
	clock_t start = clock();
#endif // TIMER
	ifstream fin("in.txt");
	if (fin.fail())
		return 1;
	ofstream fou
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值