[做题记录-乱做] [AGC004F] Namori

题意

给定一个 \(N\) 个点,\(M\) 条边的图,没有自环,没有重边。其中 \(N-1\le M\le N\),每个点初始是白色。每次操作可以处理一条边,其两个点如果颜色相同则都变成相反的颜色(黑变白,白变黑)。询问能否将每个点都变为黑色。如果能,输出最少的操作数;如果不能,输出 \(-1\).

\[1 \leq n \leq 10^5, n - 1\leq m \leq n \]

题解

泪目, 根本不会

先考虑树的情况。

据说有套路是按层奇偶分类, 如果看成奇数层是有棋子的, 偶数层没有, 每次的操作就是移动棋子, 使得偶数层放满棋子。小编也不知道咋想到的, 反正确实是对的。

然后就可以发现一条边被移动的次数就是棋子数量和空位的差, 这一步大概可以感觉出来, 然后树大概就搞完了。

然后考虑基环树, 奇环是简单的, 直接断一条边, 然后由于这条边两边颜色一样, 用来消同颜色的东东即可。

偶环的话可以列出移动次数相关的方程, 感觉上就是在数轴上选一个位置使得总和最小, 直接选就好。

至于为啥随便选条边断开就好, 可以考虑是我们考虑这条边的所有作用, 偶环里面实际上我们对所有的情况都考虑了贡献在环上的流动, 奇环里面的是因为本来动了也是要被那条边消掉, 消掉以后更新环上贡献的时候就无法更优了。

太奇妙了

posted @ 2021-10-02 19:11  HN-wrp  阅读(44)  评论(0编辑  收藏  举报