基环树dp
应用:
遇到每一个点 只会有一个方向作用到其他点, 这样产生的图形就是 一个 基环树深林
通常解决方法: 利用树形dp把除去环的值更新出来, 然后在对这个环经行处理即可
模板题:
一共有 � 个岛,每个岛都有一条出边,且该图是无向图,因为桥是可以双向行走的。给定桥的长度,即两点之间的边权。同时每对岛屿间存在一艘专用渡船,即每两点间可以相互到达。现你需选择一起始点,每个点最多经过 1 次,问所能获得的边权和最大为多少。
思路:
- 先对除去环外的点树形dp
- 然后环的处理, 在dp(单调队列优化dp(更具dp的转移式子))
- 2点的距离利用前缀和处理, 对于一个环(正向和逆向2个前缀和处理即可)