题目:http://acm.hdu.edu.cn/showproblem.php?pid=2190

思路:明显我们要寻找 边长为n和边长为n-1,n-2,n-3·····的规律,这样得出一个递推公式就能方便的得出f(n)(边长为n的值)

由于只有两种类型的地板砖,2*2  1*1,所以最后加入的一行,可能是1*1的砖块,也可能是2*2砖块的一部分,所以 f(n)就和f(n-1)和f(2)有关

接下来推导:

由数学概论论可知:

两种个情况,不同情况之间用加号

同一情况下,的下一步操作的方法数 之间用乘法

1 第n行放的是1*1的砖块

所以只需要在f(n-1)的基础上放即可,且1*1砖块的方法只有一种

2 第n行放的是2*2砖块的一部分

所以在f(n-2)的基础上放即可,本来有三种的,但是舍弃1*1的情况,因为和上述情况重复,2*2放左边或右边,两种情况

结论:f(n)=f(n-1)*1+f(n-2)*2

代码:

#include<iostream>
#include<cstdio>
using namespace std; int main()
{
int c;
int sch[];
sch[]=;
sch[]=;
sch[]=;
for(int i=;i<;i++)
sch[i]=sch[i-]+sch[i-]*;
cin>>c;
while(c--)
{
int n;
cin>>n;
cout<<sch[n]<<endl;
}
return ;
}

最新文章

  1. 【Android接百度地图API】百度地图Demo点击按钮闪退
  2. iOS 企业包碰到的问题
  3. IOS 四舍五入 进一法 去尾法
  4. 【代码笔记】iOS-点击任何处,显示出红色的UIView
  5. QT 的下载地址
  6. ArcMap中,如何查看当前工具是否在执行?如何将工具调到前台来执行?
  7. 【持续集成】使用Jenkins实现多平台并行集成
  8. hdu 2736 Surprising Strings(类似哈希,字符串处理)
  9. Spring整合Ibatis
  10. Google桌面搜索引擎
  11. 怎样使CSS3中的animation动画当每滑到一屏时每次都运行
  12. 【转】win7与ubuntu双系统,删除ubuntu后,启动错误error:no such partition grub rescue的修复--不错
  13. 一句SQL实现MYSQL的递归查询
  14. Nagiosserver端安装部署具体解释(1)
  15. SpringMVC——DispatcherServlet的IoC容器(Web应用的IoC容器的子容器)创建过程
  16. Linux修改date
  17. Open Judge 2750 鸡兔同笼
  18. 使用 ctypes 进行 Python 和 C 的混合编程
  19. Redis基础、应用、第三方支持组件总结
  20. M2postmortem

热门文章

  1. Linux基础一:Linux的安装及相关配置
  2. C++ Primer 笔记——迭代器
  3. 如何获取jar包的在执行机上面的路径
  4. excel vba获取拼音
  5. flanneld,flannel和cni逐步深入
  6. 统计各个数据库的各个数据表的总数,然后写入到excel中
  7. webpack学习笔记--配置plugins
  8. [转] ReactJS之JSX语法
  9. IO流-file
  10. BZOJ4675