摘要:
CRB and Tree 思维 路径异或一般考虑预处理从根到所有结点的前缀异或和,然后再进行计算:$f(u, v) = f(1, u) \oplus f(1, v)$ 初始化后将所有值用桶装起来,然后枚举每一个起点 $u$,然后终点就是 所询问的异或值 $s$ $\oplus$ $f(1, u)$ 阅读全文
摘要:
Tree Queries LCA 倍增 + 思维 所有的点到一条链的距离至多为 $1$,代表他们的父节点一定都在同一条链上 根据这个,找到最深的点,然后判断所有的点和它是不是在同一个链:它与其他点的 LCA 都是等于其他点 #include <iostream> #include <cstdio> 阅读全文
摘要:
Connections between cities LCA 倍增板子 求距离维护一个前缀和,$dis(u, v) = dis(rt, u) + dis(rt, v) - dis(rt, lca) * 2$ #include <iostream> #include <cstdio> #include 阅读全文