之前我们讲到动态规划五步中有个Guessing猜,一般情况下猜有两种情况:
下面我们来看如果像背包问题那样子问题比较多,该怎么去解决?
一、Piano / Guitar Fingering
给定n个按键,找到每个键应该用哪只手指去按。假设有F个手指,刚开始手指f按在p键上,如果转移到用手指g按键q,这个转移难度为定义为d(p, f, q, g)。
动态规划的解决思路如下(红叉内的内容是因为只考虑了一个子问题而报错):
上面是“单次按键只能按一个键”,但实际上,单次按键会要同时按多个键或弦,这该怎么办呢?方法如下图所示:
二、俄罗斯方块
如果你玩俄罗斯方块有下列前提,你该如果用动态规划去设计算法?结果如下图:
三、超级玛丽奥
在超级玛丽奥上,动态规划的子问题就更多了,需要考虑最小化时间,最大化分数,最大化玛丽奥速度等,解决思路讲师没给出来,但方法都八九不离十,这里我就没进行深入了解了,后续有兴趣可以深入了解看看。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章