BZOJ 1120: [POI2009]STR

来源:互联网 发布:合肥网络推广公司排名 编辑:程序博客网 时间:2024/05/16 11:18

时空隧道


Description

平面上有z个点,给你p个形如 p1(x1,y1),p2(x2,y2) 的询问,要你求出z个点中离p1更近的点,离p2更近的点,与p1和p2的距离相等的点各有多少个。这里的距离指的是曼哈顿距离,即x坐标之差的绝对值加上y坐标之差的绝对值。

Input

第一行n,m,z,p。下述所有坐标均满足1<=x<=n,1<=y<=m。接下来z行,每行xi,yi表示第i个点的坐标。接下来p行,每行x1,y1,x2,y2描述p1与p2的坐标。 1<=n,m<=10^9 1<=z,p<=100000 (x1,y1)<>(x2,y2)

Output

p行,每行三个数依次表示离p1更近的点,离p2更近的点,与p1和p2距离相等的点的个数。

Sample Input

6 5 6 1

1 2

6 5

5 1

3 3

3 4

4 1

2 3 4 3
Sample Output

1 3 2
HINT


分析:
实在是不想写了QAQ…
就是对于一个询问我们把平面划分成3个区域:
这里写图片描述
以AB两个点形成的矩形两个平行于y轴的边为界限,划分成了三个区域,然后如果AB是图中的位置分布,那么区域2的那条线斜率为-1并且过矩形的中点…然后在区域1和区域3中,分别去平行于x轴延伸这条直线…然后就形成了一条折线,这条折线上面的点离A点进,下面的离B点近,线上的离两个点距离相同…所以现在有两个选择:
1、在线:treap或者主席树维护
2、离线:树状数组维护
但是我一个都不想写肿么办….QAQ


by >_< NeighThorn

0 0
原创粉丝点击