AT_abc211_f [ABC211F] Rectilinear Polygons

题目描述

在坐标轴上有 $N$ 个多边形。 每个多边形的每条边都平行于 $x$ 轴或 $y$ 轴,并且每个内角都是 $90$ 度或 $270$ 度。每个多边形都是简单的。 第 $i$ 个多边形有 $M_i$ 个顶点,第 $j$ 个是 $(x_{i,j},y_{i,j})$。 多边形的边连接第 $j$ 和第 $j+1$ 个顶点(默认第 $M_i+1$ 个顶点是第 $1$ 个)。 :::info[一个多边形是简单的,当……] 对于它的任意两条不相邻的边,它们都不与对方相交(穿过或接触)。 ::: 你有 $Q$ 个询问。第 $i$ 个询问形如: - 在所有 $N$ 个多边形之中,有多少个多边形包含 $(X_i+0.5,Y_i+0.5)$ 这个点?

输入格式

输入数据在标准输入中由下列格式给出: $$\begin{array}{ll}N\\M_1\\x_{1,1}\quad y_{1,1}\quad x_{1,2}\quad y_{1,2}\quad\dots\quad x_{1,M_1}\quad y_{1,M_1}\\M_2\\x_{2,1}\quad y_{2,1}\quad x_{2,2}\quad y_{2,2}\quad\dots\quad x_{2,M_2}\quad y_{2,M_2}\\\vdots\\M_N\\x_{N,1}\quad y_{N,1}\quad x_{N,2}\quad y_{N,2}\quad\dots\quad x_{N,M_N}\quad y_{N,M_N}\\Q\\X_1\quad Y_1\\X_2\quad Y_2\\\vdots\\X_Q\quad Y_Q\end{array}$$

输出格式

输出 $Q$ 行。 第 $i$ 行需要包含第 $i$ 个询问的答案。

说明/提示

### 样例解释 样例 $1$: ![](https://img.atcoder.jp/ghi/5fccf008dddd93f10ebfc7f13d04a0e0.png) 注意不同的多边形可能彼此穿过或接触。 样例 $2$: ![](https://img.atcoder.jp/ghi/1c97f791a2aadcf5637b1f10736fb820.png) 尽管多边形都是简单的,它们也不一定是凸的。 ### 数据范围 - $1\le N \le 10^5$ - $4\le M_i \le 10^5$ - 每个 $M_i$ 都是偶数。 - $\sum M_i\le 4\times 10^5$ - $0\le x_{i,j},y_{i,j} \le 10^5$ - 若 $j\neq k$,那么 $(x_{i,j},y_{i,j})\neq(x_{i,k},y_{i,k})$。 - 对于 $j=1,3,\dots M_i-1$,有 $x_{i,j}=x_{i,j+1}$。 - 对于 $j=2,4,\dots M_i$,有 $y_{i,j}=y_{i,j+1}$(默认 $y_{i,M_i+1}=y_{i,1}$)。 - 给定的多边形都是简单的。 - $1\le Q\le 10^5$ - $0\le X_i,Y_i