zoukankan      html  css  js  c++  java
  • [做题记录-乱做] [AGC004F] Namori

    题意

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

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

    题解

    泪目, 根本不会

    先考虑树的情况。

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

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

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

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

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

    太奇妙了

  • 相关阅读:
    BZOJ3562 : [SHOI2014]神奇化合物
    BZOJ3559 : [Ctsc2014]图的分割
    BZOJ3551 : [ONTAK2010]Peaks加强版
    BZOJ3542:DZY Loves March
    李洪强iOS开发之
    iOS学习之iOS沙盒(sandbox)机制和文件操作1
    iOS学习之iOS沙盒(sandbox)机制和文件操作
    stringByAppendingPathComponent和stringByAppendingString 的区别
    iOS开发:Toast for iPhone
    深度解析开发项目之 01
  • 原文地址:https://www.cnblogs.com/clover4/p/15362455.html
Copyright © 2011-2022 走看看