2013编程之美资格赛题目——踩方格
描述
a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b. 走过的格子立即塌陷无法再走第二次;
c. 只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。
输入
允许在方格上行走的步数n
输出
计算出的方案数量对于小数据1 <= n <= 20; 对于大数据1 <= n <= 100.
样例输入
2
7
自己一开始做时,用了递归搜索的方法,小数据当然过了,大数据显然TLE了。此题典型的动态规划方法解,一开始也往这方面去想,但碍于自己的智商太低,想不出来推导公式,赛后,看了网上的大神的讲解,才看懂了这题怎么做。
设 F[n,1]为第n步向北走的方案数,
F[n,2]为第n步向东走的方案数,
F[n,3]为第n步向西走的方案数,
则可以列出以下动归方程: