第4-8课:方块消除游戏

前面基础部分我们介绍过简单的串模型的动态规划,在这个系列中,我们又介绍了区间动态规划模型、状态压缩动态规划模型和线性动态规划模型。我们用的算法实现都是尽量使用状态递推关系式直接用递推的方法,大家可能都忘了“备忘录(或状态记忆)”也是动态规划,这一课我们将讲解如何用这种方法来求解方块消除游戏的算法实现。

问题介绍

Jimmy 最近迷上了一款叫做“方块消除”的游戏。游戏的规则是:n 个带颜色的方块排成一列,颜色相同的方块连成一个区域(如果两个相邻的方块颜色相同,则这两个方块属于同一个区域)。游戏时,可以选择一个区域消除,如果消除区域的方块数为 x,则可以得到 $x^2$ 的分数。方块消除后右边的方块自动向左移动。游戏虽然很简单,但是要得高分也不容易,那么问题来了,最高可以得多少分?

这个游戏的有趣之处在于消除方块后自动移动方块,方块移动可能会拼成新的连续区域。消除两个独立的相同颜色方块,可以得 $1^2+1^2=2$ 分,如果这两个独立的同色方块能连成一个连续的区域,则消除这个连续区域可得 $2^2=4$ 分。因此,尽可能的形成连续的区域进行消除,才是得高分的途径。

enter image description here

图(1)消除方块问题示意图

假如给出的颜色方块的序列如图(1)所示,这个序列能得的最高分是 $4^2+3^2+2^2=29$ 分,两个蓝色方块最后消除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吹泡泡的小猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值