很好的递推题:铺磁砖和走格子

原创 2008年06月23日 09:28:00
这是Matrix67.com的递推专项训练的题目,感觉很好。

*题一:用1 x 1和2 x 2的磁砖不重叠地铺满N x 3的地板,共有多少种方案?
样例输入:2
样例输出:3


先设一个f[i]表示i*3的地板铺的方法,f[1]=1;f[2]=3;
i*3的地板数是这样得到的:(i-1)*3的地板比i*3的地板少的地方全铺上1*1的瓷砖,这有一种铺法;
或者在(i-2)*3的地板比i*3的地板少的地方铺上2*2的瓷砖和2个1*1的瓷砖,这有两种铺法;
所以得到递推式:f[i]=f[i-1]+2*f[i-2];

*题二:从原点出发,一步只能向右走、向上走或向左走。恰好走N步且不经过已走的点共有多少种走法?
样例输入:2
样例输出:7


这个我没想出来,看题解才弄明白。。
先设一个f[i]表示恰好走i步且不经过已走的点 共有的走法。
如果向上走,不会出现经过已走的点;如果向左或右,上一步不能是向右或左。

引用题解上的一句话:/*
这一步的选择数= (3*上一步的所有选择中向上走的选择数) + (2*上一步的所有选择中向左、右走的选择数)。上一步的所有选择中向上走的选择数”实际上就是“上上步的所有选择数”即d[i-2]
*/引用结束

还有一点,就是“上一步的所有选择中向左、右走的选择数” 等于 “上步所有的选择数(即f[i-1])-上步向上的选择数”
也就等于 “上步所有的选择数(即f[i-1])-上上步所有的选择数(即f[i-2])”
所以得到递推式:f[i] = (3*f[i-2]) + 2*(f[i-1]-f[i-2]);

题解上共有五题,都很好,大家可以去这里看看:
http://www.fengzee.com/blog/article.asp?id=60

走格子(数学组合/动态规划)

一个高中就学过的问题:现有一个m * n的网格,从最左上角出发,每次只能向右或者向下移动一格,问有多少种不同的方法可以到达最右下角的格子?    可以用高中学过的排列组合来解,见下图一个6*6的格子...
  • qq_30076791
  • qq_30076791
  • 2015-12-29 18:04:29
  • 2212

SDAU 练习三 1016 走格子问题

简单题意:       在一无限大的二维平面中,我们做如下假设每次只能移动一格;;不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);走过的...
  • CSDN___LYY
  • CSDN___LYY
  • 2016-05-09 23:21:24
  • 347

1062:铺瓷砖-1

1062:铺瓷砖-1时间限制: 1 S 内存限制: 2048 KBSubmit: 8 Accept: 8[提交] [状态] [讨论版]描述对于一个3行m列的走道。现在用1*3、2*3、3*3的砖去铺满...
  • qq_41505957
  • qq_41505957
  • 2018-03-14 21:46:25
  • 121

蓝桥杯-瓷砖摆放-递推-java

问题描述   有一长度为N(1   例如,长度为4的地面一共有如下5种铺法:   4=1+1+1+1   4=2+1+1   4=1+2+1   4=1+1+2   4=2+2  ...
  • lijinyuliangyan
  • lijinyuliangyan
  • 2017-02-16 17:27:39
  • 634

求用1×2的瓷砖覆盖2×M(M为正整数)的地板的方法数 (第二题)

求用1×2的瓷砖覆盖2×M(M为正整数)的地板的方法数,要求给出精确答案.   一块占1列,2块横排占2列: 1和2的组合。 不断增加列数     当M=1时,Method(1)=1;  ...
  • Serenada
  • Serenada
  • 2011-11-10 17:12:01
  • 1897

蓝桥杯 瓷砖铺放(dfs)

算法训练 瓷砖铺放   时间限制:1.0s   内存限制:512.0MB        问题描述   有一长度为N(1   例如,长度为4的地面一共有如下5种铺法: ...
  • qq_27601815
  • qq_27601815
  • 2017-03-19 14:46:25
  • 779

课堂在线Java程序设计 铺砖问题

有两种砖,分别是1*1的砖和1*2的砖,用这两种砖铺1*N的地面,问共有多少种铺法。输入为N,请输出相应的铺法数 输入: 3 输出: 3 这道题我的理解可能不正确 -_-! package...
  • u010623699
  • u010623699
  • 2017-06-22 17:10:39
  • 483

状态压缩动态规划 POJ 2411 (编程之美-瓷砖覆盖地板)

编程之美的课后题也有一个和整个题目一样的。(P269)  题目 这个题目的题意很容易理解,在一个N*M的格子里,我们现在有两种类型的 砖块,1 * 2 和 2 * 1,问一共有多少种方案,...
  • qq_25818131
  • qq_25818131
  • 2015-05-06 11:54:51
  • 661

1*1+2*2+3*3+++++++++n*n(用递归

Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称:1*1+2*2+3*3+++++++++n*n(用递归) *作者:杨飞 *完成日期:...
  • u012370105
  • u012370105
  • 2013-11-24 19:31:28
  • 1145

S2阶段项目-格子铺

  • 2009年01月16日 16:24
  • 2.6MB
  • 下载
收藏助手
不良信息举报
您举报文章:很好的递推题:铺磁砖和走格子
举报原因:
原因补充:

(最多只允许输入30个字)