1 条题解

  • 0
    @ 2022-11-17 21:35:37

    考虑每个位置每个二进制位对答案的贡献。

    例如考虑某一点 A 上的第 m 位二进制对答案的贡献。(第 mm 位的权值是 2m2^m

    统计 A 点以及 A 点的直接孩子(只有直接孩子才可以爬到 A 点)中,有多少只蚂蚁的第 M 位二进制是 1,我们把这种蚂蚁称为好蚂蚁,不是 1 的则称为坏蚂蚁。

    如果有奇数只好蚂蚁爬到 A 点,那么他们就可以异或出这个数字。假设好蚂蚁的数量为 N,那么这些好蚂蚁爬到 A 点的方案数就是 CN1+CN3+CN5+...=2n1C_N^1+C_N^3+C_N^5+...=2^{n-1}。然后我们还要统计其他对答案没有影响的蚂蚁的方案数,例如坏蚂蚁。或者是压根与 A 点无关的蚂蚁,要记得我们刚刚只是统计所有和 A 点直接相关的蚂蚁是好的还是坏的,但还有很多蚂蚁我们根本没有统计,那些蚂蚁也会形成一些方案。每一只坏蚂蚁都可以向上爬或者不爬两种都行,那么我们这个方案数就是一个2的幂次;还有其他的蚂蚁,也是可以向上爬或者不爬,他的方案数也是 2 的幂次。但是我们要特殊判断根结点不能向上爬的情况,以及 A 点只有一只好蚂蚁的情况(如果某一点只有一只蚂蚁,那么它是不能异或对答案产生贡献的)

    • 1

    信息

    ID
    1660
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    (无)
    递交数
    13
    已通过
    1
    上传者