基环树dp

Posted 小幻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基环树dp相关的知识,希望对你有一定的参考价值。

应用:

遇到每一个点 只会有一个方向作用到其他点, 这样产生的图形就是 一个 基环树深林 

通常解决方法: 利用树形dp把除去环的值更新出来, 然后在对这个环经行处理即可

模板题:

一共有 � 个岛,每个岛都有一条出边,且该图是无向图,因为桥是可以双向行走的。给定桥的长度,即两点之间的边权。同时每对岛屿间存在一艘专用渡船,即每两点间可以相互到达。现你需选择一起始点,每个点最多经过 1 次,问所能获得的边权和最大为多少。

 

思路:

  • 先对除去环外的点树形dp
  • 然后环的处理, 在dp(单调队列优化dp(更具dp的转移式子))
  • 2点的距离利用前缀和处理, 对于一个环(正向和逆向2个前缀和处理即可)

 

以上是关于基环树dp的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ 1040: [ZJOI2008]骑士(基环树dp)

bzoj 1791: [Ioi2008]Island 岛屿基环树+单调队列优化dp

[ZJOI2008] 骑士

ZJOI2008 骑士 基环树

[bzoj3037/2068]创世纪[Poi2004]SZP_树形dp_并查集_基环树

bzoj1040: [ZJOI2008]骑士(基环树+树形dp)