做DP题的一些总结(自用,勿看,如果你没做过这些题,会影响做题质量)

1.统计单词个数
https://www.luogu.org/problemnew/show/P1026
DP的过程实际上就是拼凑最优解的过程,因此,可以先想想最优方案是如何构成的,然后对最优方案进行优美地分解,使得其可以转移,(分解可以是一行一列一段一层(树上)!),比如这题我一开始状态设对了。。。但是因为太弱,没能想出来一段一段转移,而是考虑一个一个字符转移。看来做不出时就要拓展思路,拓展做题的方式,把1变为多 把多变为1这样子。。。
并且要多画画图。。。我在纸上画了几个“子段后”豁然开朗
这里写图片描述
2.绿豆蛙的归宿
注意公式中的+= 有这个符号要注意别让某个点重复dfs了多次。。。事实上期望是倒推,算出f[x]之后以另外一种方式到达x时不要再从x出发了,不然这怎么叫倒推呢,所谓的倒推,递归回来的时候,一个点把他的每条出边都来一遍就返回
事实上更普遍的是应该拓扑一遍,可以反向建图,然后方程是fv = fx/out(x) out出边
3.矩阵取数游戏
重叠子问题 其实也就是某些东西在过程中单调变化
发现区间是单调缩短的,则f[x][y]表示区间缩到x,y时的最大值

次小/大值是很有用的,有时候DP转移会受到限制,最大值可能无法转移过去,这个时候就可以调用次大值,一种最大值无法转移的情况的最优解难道不是用次大值去转移过去吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值