摘要: 挺好的一道题. 判断先手必胜即判断所有数异或值是否为 0. 直接判断的话不好做,不妨先强制所有数选 a,然后再看有几种方案使得选一些 b 让序列异或值为 0. 假如想让位置 i 从 a->b,要异或上 $a_{i}$ xor $b_{i}$. 那么,就先求出所有 $a_{i}$ 的异或和 sum,然 阅读全文
posted @ 2020-07-10 10:27 EM-LGH 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 结论:如果边权非负,则距离树上一个点最远的点一定是直径端点之一. 由此可得我们只需维护树的直径就行. 这种维护方法的局限性在于不可以有删边操作. 假如合并两个连通块 A,B, 直径端点分别为 $x_{0},x_{1},x_{2},x_{3}$,新树直径的端点一定是在 4 个点中的两个. 那就两两取 阅读全文
posted @ 2020-07-10 09:59 EM-LGH 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 可以将跳左/右/父亲抽象成二进制的形式. 跳左:x<<1 跳右:x<<1|1 父亲:x>>1 但是题中说如果跳到根节点之后再跳父亲编号仍然不变比较不好处理. 但是我们发现一个性质:令 $fl$ 表示一个区间能跳到最靠上的祖先,$path$ 表示跳到该祖先后向下跳的路径,答案一定可以表示成 max(1 阅读全文
posted @ 2020-07-10 09:13 EM-LGH 阅读(188) 评论(0) 推荐(0) 编辑