状态机模型

状态机模型在动态规划(DP)问题中扮演关键角色,它将递推过程映射到有向无环图(DAG)上。通过状态表示和状态转移方程,我们可以清晰地理解问题解决方案。在某些情况下,如大盗阿福问题,状态机有助于处理物品选择的依赖关系。初始化DP数组通常依据问题需求,如最大值问题则设为负无穷。在股票买卖IV问题中,由于首次买入可以在任意点发生,初始化为0。状态机模型能解决复杂问题,并在合理的时间复杂度内得出答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

状态机dp
对dp问题认识:

其实dp问题是在一个有向无环图上递推的过程, 在dag上递推求得答案。 图论问题我们需要建图, 但是dp问题我们不需要真的把图建出来,其实 状态表示,f(i, j)表示的就是图中的一个节点, f(i, j)存的值是从起点到该点的值(最大值、最小值、方案数)。状态转移方程实际上就是描述的是当前点可以由前面的哪些点到达, 按照状态转移方程进行计算,最后根据状态表示求得答案。

简而言之: 状态机能使原来混沌的状态变的更加清晰

关于状态机如何想出来:

  1. 当前节点的状态可以有哪些?
  2. 这些状态可以由哪些状态转移过来?

题目一: 大盗阿福

分析:

为什要引入状态机:

在背包问题中, 前面一个物品的选择是不会影响后一个物品, 即每个物品的选择都是独立的。

而在状态机模型中, 当前物品的选择是会影响后面物品能不能被选择,由于我们不知道当前物品是不是在最优解的选择中, 所以我们要分别计算出选当前物品和不选当前物品,即在状态表示时加一个维度表示物品是否被选择,最后根据题目的意思画出状态机,写出状态转移方程。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值