2024/12/23

Ynoi2010 Fusion tree

使用字典树来维护信息,由于要求的是异或和,所以我们只关心每个位上 1 出现的次数。

要支持:加入一个数,删除一个数,整体加 1。

对于整体加 1,只需要从低到高找到第一个 0,将其变为 1,之后将之后的所有 1 变为 0,对应到字典树上就是交换两个儿子。

对于每个点都开一棵字典树维护子节点的异或和,父节点单独算。

ARC087E Prefix-free Game

把所有 01 串放到字典树上去,存在一个 01 串就相当于从它到根节点的字符都不能够选择。

这样还会剩下若干完全二叉树,通过某种方式得知,深度为 \(d\) 的完全二叉树的 sg 函数值为 \(\text{lowbit(d)}\)

BZOJ3489 A simple rmq problem

求出每个数在左边出现和在右边出现的位置 \(l_i,r_i\)

询问 \([ql,qr]\) 要满足 \(l_i<ql\)\(r_i>qr\)\(ql\le i\le qr\)

发现是个三维问题,直接上 KD-tree。

其他问题

  • Désive
  • 熟练
  • K远点对
posted @ 2024-12-24 19:14  ddxrS  阅读(11)  评论(0)    收藏  举报