题目描述
给定一颗黑白内向基环树,你要对其进行匹配,让匹配数最多的同时最大化异色匹配。并且给出一种方案。
。
思路
暴力
考虑流。对于一颗普通的树,进行黑白染色变成二分图,跑网络流即可得到最大匹配。如果是异色匹配费用流即可。对于这道题,不妨直接断开环上的任意一条边 ,钦定这条边必须选择或者不选流两次即可。时间复杂度 。理论可过,而且有人过了,但是卡常。
正解
考虑 dp。对于环上的一条路径 。最多产生一个匹配。所以我们可以先断开 dp 一次,再断开 dp 一次。两次 dp 答案取 max 即可。这个 dp 是朴素的,设 表示 子树内, 是()否()可以进行匹配的答案。平凡的转移:
然后记一下转移去找匹配就行了。时间复杂度 。