Topic:
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)
从我做起振
我做起振兴
做起振兴中
起振兴中华
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
Analysis:
看似复杂的题目实际就是对于每个格子只有向右或者向下两种选择
而对于每一个格子可以由上面的格子或者左面的格子到达
Solution_1:
动态规划
首先创建一个四行五列的矩阵
由“从”开始只有1种路径
所以令data[0][0] = 1
之后对于第一行的只有从左侧到达这一种方法
对于第一列的只有从上面到达这一种方法
对于其他的格子可以由上面的格子或者左面的格子到达
到达任一格子的路径数由到达上面的格子的路径数和左面的格子的路径数相加得到
转移方程总结为data[i][j] += data[i