HDU 1143 Tri Tiling 递归问题
2024-08-26 17:17:43
将一个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 ;
}
最新文章
- PS------“窗口” ->; ";扩展功能";使用方法
- Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)
- 斯坦福iOS7公开课7-9笔记及演示Demo
- 2D Skeletal Animation Ready
- AI
- openldap安装配置
- Mysql启动失败 MYSQL:The server quit without updating PID file
- 文件上传与下载/Mail
- 12C 连接方式和 Oracle Easy Connect Naming method
- shell学习指南-阅读笔记
- PHP session有效期session.gc_maxlifetime详解
- TortoiseGit拉取或推送,输入账号密码后提示 HTTP Basic: Access denied fatal: Authentication failed 解决方案
- unicode,gbk,utfF-8字符编码方式的区别
- [转]Spark学习之路 (三)Spark之RDD
- Flink架构、原理与部署测试(转)
- Telephone dialer
- 我写的RunTime函数之一,为类的某个属性赋值以及方法交换
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十七)Elasticsearch-6.2.2集群安装,组件安装
- [转]JVM参数设置、分析
- 泛微e-cology和Oracle无法启动的解决方案