基环树dp
Posted 小幻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基环树dp相关的知识,希望对你有一定的参考价值。
应用:
遇到每一个点 只会有一个方向作用到其他点, 这样产生的图形就是 一个 基环树深林
通常解决方法: 利用树形dp把除去环的值更新出来, 然后在对这个环经行处理即可
模板题:
一共有 � 个岛,每个岛都有一条出边,且该图是无向图,因为桥是可以双向行走的。给定桥的长度,即两点之间的边权。同时每对岛屿间存在一艘专用渡船,即每两点间可以相互到达。现你需选择一起始点,每个点最多经过 1 次,问所能获得的边权和最大为多少。
思路:
- 先对除去环外的点树形dp
- 然后环的处理, 在dp(单调队列优化dp(更具dp的转移式子))
- 2点的距离利用前缀和处理, 对于一个环(正向和逆向2个前缀和处理即可)
以上是关于基环树dp的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 1040: [ZJOI2008]骑士(基环树dp)
bzoj 1791: [Ioi2008]Island 岛屿基环树+单调队列优化dp