洛谷AT2046 Namori(思维,基环树,树形DP)

洛谷题目传送门

神仙思维题还是要写点东西才好。

每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移。

因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一枚棋子,每次可以将棋子移向相邻的空位,目标状态是树的偶数层的所有点上都有棋子。

这样的互换总次数有没有一个下界呢?

我们求出\(a_i\)表示点\(i\)子树中棋子数量与空位数量之差(可以是负数),那么\(i\)的父边就至少要交换\(|a_i|\)次。

为什么呢?子树里面空位比棋子少的话,肯定要通过父边把\(a_i\)个棋子送出去,才能移进来\(a_i\)个空位。

于是,如果\(a_{rt}\)(根)不为\(0\)就无解,否则\(\sum\limits_{i=1}^n|a_i|\)就是答案上界。

然后,仔细推一下发现它就是答案。

对于一个点,它的父边和所有子边的移进移出的顺序,和其它点的顺序是互相独立的。

等于说我们总能安排一个合法的顺序,使得它们一进一出一进一出。。。这样完整地衔接起来,而不会互相矛盾。

猜你喜欢

转载自www.cnblogs.com/flashhu/p/10470601.html