HDU 1143 Tri Tiling 递归问题

将一个3*n的矩形用1*2的矩形填充,n为奇数时一定不能被填满,n*3%2==1
接下来处理这个问题我们要从简单的情况开始考虑,所谓递归就是要能将问题的规模不断减小,通过小问题的解决最后将复杂问题解决。如果是3*2的情况仅有3种可能

那么我们来考虑3*4的矩形是否一些就是有这两个3*2的矩形拼接在一起的多种组合,当然还包含一种特殊的情况即如下图所示的拼接方法
把 4, 6, 8.... 看成一整块,就有下图两种情况(正着,倒着)

那么我们可以将其排成的各种情况分成如下两大类
由自身单独构成的矩形(即不可以分割)
可以分割的情况,即2*f(n-2i)(此时2i>2)/3*f(n-2i)(此时2i==2)
如图所示

代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int till(int n)
{
int s,i;
if(n!=)
{
s=;
}
else
return ;
for(i=;i<n;)
{
if(i==)
s=s+*till(n-i);
else
s=s+*till(n-i);
i=i+;
}
return s;
}
int main()
{
int n;
while(cin>>n)
{
if(n==-)
break;
if(n%==)
cout<<<<endl;
else if(n==)
cout<<<<endl;
else
cout<<till(n)<<endl;
}
return ;
}
HDU 1143 Tri Tiling 递归问题的更多相关文章
- HDU 1143 Tri Tiling
链接:http://acm.hdu.edu.cn/showproblem.php? pid=1143 Tri Tiling Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1143 Tri Tiling (递推)
Tri Tiling Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1143 Tri Tiling(递归)
意甲冠军:一些现有的1*2小盒子.求拼3*n多少个长方形的拼写. 思考: 因为它是一个递归式.肯定会遇到层的关系.仔细观察,研究发现,每层应设置2一层.(奇数层不能是矩形)而从显卡好最后一层的最后一战 ...
- Tri Tiling(hdu1143)
Tri Tiling Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- POJ 2663 Tri Tiling
Tri Tiling Time Li ...
- Tri Tiling[HDU1143]
Tri Tiling Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- uva 10918 - Tri Tiling(规律)
题目链接:uva 10918 - Tri Tiling 题目大意:给出n,计算用1*2的瓷砖有多少种方法铺满3*n的地方. 解题思路:和uva 10359 - Tiling有点相似,不过难度会比较大, ...
- POJ 2663 Tri Tiling 矩阵快速幂 难度:3
Tri Tiling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7841 Accepted: 4113 Descri ...
- HDU 2585 [Hotel]字符串递归处理
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2585 题目大意:马克思要找个曾经去过的很好的旅馆,可惜他记不完整旅馆的名字.他有已知的部分信息和可能的 ...
随机推荐
- WinKawaks使用技巧
1 关于载入游戏:把游戏的zip文件放到roms目录下.注意不要随意修改文件名!也不要让文件名有中文!例如:"[游戏roms][neogeo]mslugx.zip"改成" ...
- UVA 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
UVA 12338 - Anti-Rhyme Pairs 题目链接 题意:给定一些字符串,每次询问求出两个字符串的最长公共前缀的长度 思路:把字符串排序,就能求出height和rank数组,然后利用R ...
- 【凯子哥带你夯实应用层】使用ActionProvider实现子菜单时遇到的一个坑
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 近期在重温Android基础.在看到ActionProvider的时候遇到一个坑.分享到大家,避免入坑. 首 ...
- cocos2d-x项目101次相遇:在HelloWorld上--建立新场景
cocos2d-x 101次相遇 / 文件夹 1 安装和环境搭建 -xcode 2 Scenes , Director, Layers, Sprites 3 建立图片菜单 4 在 ...
- Linux 中如何查询和卸载已安装的软件
Linux 中如何查询和卸载已安装的软件 Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序” 来实现.与其相 ...
- caffe2--ubuntu16.04--14.04--install
Install Welcome to Caffe2! Get started with deep learning today by following the step by step guide ...
- python发送邮件相关问题总结
一.发送邮件报错:554:DT:SPM 1.报错信息 2.通过查找163报错信息页面,554 DT:SPM的问题如下: 3.将邮件主题中的“test”去除,经过测试,实际上邮件主题包含“test”也能 ...
- React_Redux_Router
一.react_redux 比较好的blog: blog1, blog2, blog3 主要根据前两个blog总结如下: 1. React在组件内部(包括子组件)为单向数据流且自上向下通过props传 ...
- 开源无广告输入法Rime
最近在看别人的博客的时候,看到别人推荐一种开源的输入法Rime.然后就下载下来一用,果然给力啊,没有广告,没有插件,很干净的输入法.比其他输入法强太多.废话少说,下面是链接https://code.g ...
- go网关
package main import ( "flag" "fmt" "io" "net" "os" ...