胜兵必骄
https://xinyoudui.com/ac/contest/74500D24A000A6307D59EF/problem/43679
见仁见智构造题。
发现如果根节点的颜色与其所有儿子颜色不同,那么很好处理,此时就是对于一个连通块跑欧拉序拆开,然后划归为子问题解决。
现在问题在于可能找不出这样一个根节点,考虑对于最上面的连通块特殊处理,在延申下来的其中一个点中,先交换一次,然后将两个连通块全部断掉,最后再换回来,这样我们可以通过拆散另外一个连通块的代价将最上面的连通块拆开,不难发现此时问题已经变为上述子问题,递归即可。
不知道为什么题解那么复杂。

浙公网安备 33010602011771号