博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj2506 Tiling
阅读量:7112 次
发布时间:2019-06-28

本文共 1691 字,大约阅读时间需要 5 分钟。

 

题目大意:用多少种方法可以用2*1或2*2瓦片来铺一个2*n的矩形?

这是一个2*17长方形的样品。

输入是一行行的序列,每一行包含一个整数0 <= n <= 250。对于每一行输入,在单独的行中输出一个整数,给出一个2 * n矩形的可能摆放方式数。

 

也就是说给一个2*n的棋盘,用三种方块(2*2,1*2,2*1)将其铺满,求有多少种可能性,通过给出的案例可以发现,输出的结果很大long long类型也存不下,所以要运用大整数的加法。作图可以发现递归方程式,对2 * 1,2 * 2,2 * 3来说 2 * 1有1种;2 * 2有3种;2 * 3 可以在2 * 2 的基础上加一个2 * 1竖着放的瓦片,在 2 * 1 的基础上加一个2 * 2的瓦片,也可以加两个2 * 1横着放的瓦片(竖着放与在 2 * 2的基础上重复)。num[3] = num[2]+ 2 * num[1]

 

算法思想:递归求解,这里采用一次性计算的迭代法提高算法的效率。我们可以发现递归的方程式:

1)num[i] = num[i - 1]+ 2 * num[i - 2];  i>2

2)num[0]  =  1 ;  i=0

3)num[1]  =  1 ;  i=1

4)num[2]  =  3 ;  i=2

1 #include 
2 #include
3 using namespace std; 4 string Add(string str1, string str2)//大整数加法(两个正整数) 5 { 6 string str; 7 int len1 = str1.length(); 8 int len2 = str2.length(); 9 if (len1 < len2) //前面补0,使两个字符串长度相同 10 {11 for (int i = 1; i <= len2 - len1; i++)12 str1 = "0" + str1;13 }14 else15 {16 for (int i = 1; i <= len1 - len2; i++)17 str2 = "0" + str2;18 }19 len1 = str1.length();20 int cf = 0;//进位21 int temp;//当前位的值22 for (int i = len1 - 1; i >= 0; i--)23 {24 temp = str1[i] - '0' + str2[i] - '0' + cf;25 cf = temp / 10;26 temp %= 10;27 str = char(temp + '0') + str;28 }29 if (cf != 0) str = char(cf + '0') + str;30 return str;31 }32 int main()33 {34 string num[251] = { "1","1","3" };35 for (int i = 3; i <= 250; i++)36 {37 num[i] = Add(num[i - 1], Add(num[i - 2], num[i-2]));38 }39 int temp;40 while (cin >> temp) {41 cout << num[temp] << endl;42 }43 return 0;44 }

 

转载于:https://www.cnblogs.com/DA799422035/p/8995189.html

你可能感兴趣的文章
Div和Span标签显示与隐藏
查看>>
highcharts 结合phantomjs纯后台生成图片
查看>>
Eclipse上GIT插件EGIT使用手册之十二_重置功能
查看>>
阻塞自定义队列
查看>>
SVG报错error on line 39 at column 26: Namespace prefix xlink for href on script is not defined
查看>>
error: ‘for’ loop initial declarations are only allowed in C99 mode
查看>>
MySQL和Oracle开发差异
查看>>
NTFS For Mac系统配置有什么要求
查看>>
DevExpress的安装方法与破解教程【转】
查看>>
判断浏览器类型的脚本
查看>>
65个面试常见问题技巧回答(绝对实用)
查看>>
又快又省钱这是什么黑科技?图鸭科技带你领略极致直播体验
查看>>
关于不同的MySQL复制解决方案概述
查看>>
学会这个技能,千元机也能拍出炫酷大片
查看>>
手机市场硝烟弥漫,心系天下三星W2017价格上扬仍一机难求
查看>>
蔚来汽车更新招股书:IPO后李斌将拥有48%投票权
查看>>
快手成央视春晚官方合作伙伴 助力春晚传播
查看>>
春运服务“铁骑”返乡8年女交警:寒风中随车返乡孩子少了
查看>>
中国同辐与美国安科锐合作
查看>>
「Python」一文读懂装饰器
查看>>