动态规划进阶?
树形 dp
P1352 没有上司的舞会 经典的节点选择型。
树形 dp,就是把 dp 建立于树的形态之上,通常
大致可以分类为节点选择型和树上背包型,还有换根 dp 比较恶心。
在 P1352 中,每个节点都可以选或不选,但选出来的点之间不能有边相连。
- 状态:
表示节点 不选的最大欢乐指数, 表示节点 选的最大欢乐指数。 - 转移:令
表示节点 的儿子集合,则 。 - 拓扑序:首先找到那个没有上司的节点,以它为根,按深度从大到小进行
,也可以直接边搜索边做。 - 初始状态:没有。
- 目标状态:
。
时间复杂度:
状压 dp
CSES1690 Hamiltonian Flights 模板。
状压 dp,就是把多维状态压缩成一个整数,通常是把每个节点的访问情况通过二进制的形式压缩成整数。
其实还算简单的,配合之前的 dp,将多维度压缩整数,注意细节即可。
本文作者:wnsyou の blog
本文链接:https://www.cnblogs.com/wnsyou-blog/p/dp_plus.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步