问题描述
我们在 xy 平面上有 N 个多边形。
这些多边形的每条边都与 x 轴或 y 轴平行,并且每个内角为 90 度或 270 度。所有这些多边形都是简单多边形。
第 i 个多边形有 Mi 个角,第 j 个角的坐标为 (xi,j,yi,j)。
该多边形的边是连接第 j 个角和 (j+1) 个角的线段。(假设 (Mi+1) 个角是第一个角。)
当...
对于它的任意两条不相邻的边,它们不相交(不交叉也不触碰)。
你会得到 Q 个查询。对于每个 i=1,2,…,Q,第 i 个查询如下:
- 在 N 个多边形中,有多少个多边形包含点 (Xi+0.5,Yi+0.5)?
约束条件
- 1≤N≤105
- 4≤Mi≤105
- 每个 Mi 都是偶数。
- ∑iMi≤4×105
- 0≤xi,j,yi,j≤105
- 若 j=k,则 (xi,j,yi,j)=(xi,k,yi,k)。
- 对于 j=1,3,…,Mi−1,有 xi,j=xi,j+1。
- 对于 j=2,4,…,Mi,有 yi,j=yi,j+1。(假设 yi,Mi+1=yi,1。)
- 给定的多边形都是简单多边形。
- 1≤Q≤105
- 0≤Xi,Yi<105
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入中给出:
N
M1
x1,1 y1,1 x1,2 y1,2 … x1,M1 y1,M1
M2
x2,1 y2,1 x2,2 y2,2 … x2,M2 y2,M2
⋮
MN
xN,1 yN,1 xN,2 yN,2 … xN,MN yN,MN
Q
X1 Y1
X2 Y2
⋮
XQ YQ
输出
输出 Q 行。
第 i 行应包含第 i 个查询的答案。
示例输入1
3
4
1 2 1 4 3 4 3 2
4
2 5 2 3 5 3 5 5
4
5 6 5 5 3 5 3 6
3
1 4
2 3
4 5
示例输出1
0
2
1

请注意,不同的多边形可能会相交或接触。
示例输入2
2
4
12 3 12 5 0 5 0 3
12
1 1 1 9 10 9 10 0 4 0 4 6 6 6 6 2 8 2 8 7 2 7 2 1
4
2 6
4 4
6 3
1 8
示例输出2
0
2
1
1

虽然多边形是简单的,但它们可能不是凸多边形。