题目描述
xy 平面上に N 個の多角形があります。
これらの多角形は、全ての辺が x 軸または y 軸に平行で、全ての角が 90 度または 270 度で、かつ単純です。
i 個目の多角形は Mi 個の頂点からなり、j 番目の頂点は (xi, j, yi, j) です。
多角形の辺は j 番目の頂点と j+1 番目の頂点を結んでできる線分です(ただし Mi+1 番目の頂点は 1 番目の頂点とします)。
多角形が単純とは 連続しないどの 2 辺も共通部分を持たない(すなわち交差も接触もしない)とき、その多角形を単純といいます。
Q 個のクエリが与えられます。 i = 1, 2, …, Q について、i 個目のクエリは以下の通りです。
- N 個の多角形のうち、点 (Xi + 0.5, Yi + 0.5) を内部に含むものはいくつありますか?
输入格式
入力は以下の形式で標準入力から与えられる。
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 個目のクエリに対する答えを出力せよ。
题目大意
题目大意
给出平面的 N 个简单多边形,对于每个多边形,其每一条边都平行于 X 轴或 Y 轴,每一个角都为 90 度或 270 度,如图所示。
现在有 Q 次询问,每次给出一个有序整数对 (X,Y) ,求点 (X+0.5,Y+0.5) 被多少个多边形覆盖。
数据范围
-
1≤N≤105
-
4≤Mi≤105
-
∀Mi,i∈[1,N],Mi 为偶数
-
∑Mi≤4×105
-
0≤xi,j,Xi,yi,j,Yi≤105
-
1≤Q≤105
-
对于 j=1,3,5...Mi−1 ,都有 xi,j=xi,j+1
-
对于 j=2,4,6...Mi ,都有 yi,j=yi,j+1 (特殊的, yi,Mi=y1,1 )
-
对于任意一个给出多边形,没有重合的顶点。即若 k=j ,则 (xi,j,yi,j)=(xi,k,yi,k)
-
输入的所有数据均为整数。
输入格式
第一行输入一个整数 N 。
后面 1 至 N+1 行,第 i 行先输入一个整数 Mi ,再输入 2×Mi 个整数:$x_{i,1},y_{i,1},x_{i,2},y_{i,2},...,x_{i,M_i},y_{i,M_i}$ 。其相邻两点所连成的线段即为多边形的边。
接下来读入一个数 Q 。表示询问 Q 次。
后面 Q 行每行有两个数 Xi,Yi ,表示询问点 (Xi+0.5,Yi+0.5) 被多少个多边形覆盖。
输出格式
共 Q 行,每一行有一个整数表示答案。
样例解释
1.如上图
2.如下图
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
0
2
1
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
0
2
1
1
提示
制約
- 1 ≤ N ≤ 105
- 4 ≤ Mi ≤ 105
- Mi は偶数
- ∑i Mi ≤ 4 × 105
- 0 ≤ xi, j, yi, j ≤ 105
- j = k ならば $ (x_{i,\ j},\ y_{i,\ j})\ \neq\ (x_{i,\ k},\ y_{i,\ 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
- 入力は全て整数
Sample Explanation 1
![](https://img.atcoder.jp/ghi/5fccf008dddd93f10ebfc7f13d04a0e0.png) 異なる多角形同士は、交差したり接触したりする可能性があることに注意してください。
Sample Explanation 2
![](https://img.atcoder.jp/ghi/1c97f791a2aadcf5637b1f10736fb820.png) 多角形は単純ですが、凸多角形とは限りません。