[NCR CodeSprint]Points and Fences

来源:互联网 发布:番茄工作法 知乎 编辑:程序博客网 时间:2024/05/14 20:36

Problem

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

Solution

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

Code

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

0 0
原创粉丝点击