当前位置: 代码迷 >> 综合 >> [NCR CodeSprint]Points and Fences
  详细解决方案

[NCR CodeSprint]Points and Fences

热度:53   发布时间:2024-01-11 19:04:35.0

Problem

有n个点在平面上,给出q个询问或操作,每个操作加入或删除一个矩形方框(保证任何时刻都不会有点在矩形的边上,不会有矩形接触或相交),询问每次询问两个点能否不经过矩形方框的边互相到达。
1n105

Solution

我们要解决的问题在于判断两个点是否被同样的矩形集合覆盖。
于是我们可以给每个矩形随机一个 (0,264?1] 的权值,然后每个点有一个函数f(x)表示覆盖点x的矩形的xor和
那么我们可以很方便的判断两个点是否被同样的矩形集合覆盖,只要看两个点的f是否相同就好了,然后这个可以用树套树解决。

Code

Noip之前还是不要打这样的数据结构题,所以先留个坑。

  相关解决方案