DeerInZooDivOne

作者:叶珈宁

关键词:DP 树同构 二分图最大权匹配 KM算法

题目简述

给定一棵个节点的树,要求找出两个最大的没有公共点的同构连通块。求这两个连通块的大小。

两个连通块同构是指存在一组的点编号集合到的点编号集合的双射,使得如果中的点之间有一条边,那么中的点之间也有一条边。

.

算法

假设现在有两棵有根树分别是的根,设表示最大的同构连通块大小使得是这两个连通块中的对应点(即)。那么如何才能求得

表示的儿子集合,那么如果对所有都求出了,就可以构造一个二分图,左边的点集是,右边的点集是之间的边权是,则就是这个二分图的最大权匹配+1。

那么回到原问题,把树变成有根树,对于答案的两个连通块,至少有一个连通块的根的子树里没有另一个连通块的点。枚举这个点作为,把父亲之间的边断开,再枚举它父亲所在的连通块内的一个点作为,计算即可。

状态数是的,KM转移的复杂度是的,所以总复杂度是的。

results matching ""

    No results matching ""