#4589. Scalene Triangle Area

0

Scalene Triangle Area

Scalene Triangle Area

题目描述

我们有一个 N×NN \times N 的网格。 从上往下第 ii 行、从左往右第 jj 列的格子称为 (i,j)(i,j)。
每个格子最多有一枚棋子。
网格的状态由 NN 个字符串 SiS_i 给出:

如果 SiS_i 的第 jj 个字符是 OO,则 (i,j)(i,j) 上有一枚棋子; 如果 SiS_i 的第 jj 个字符是 XX,则 (i,j)(i,j) 上没有棋子。

给定一个整数 MM。 使用该 MM,我们定义放在 (s,t)(s,t) 的棋子 PP 覆盖格子 (u,v)(u,v) 当且仅当满足所有下列条件:

s≤u≤Ns \le u \le N t≤v≤Nt \le v \le N (u - s) + \frac{(v - t)}{2} < M

对于每个 QQ 个格子 (Xi,Yi)(X_i,Y_i),求有多少枚棋子覆盖该格子。

输入格式

输入从标准输入按以下格式给出: NN MM S1S_1 S2S_2 ⋮\vdots SNS_N QQ X1X_1 Y1Y_1 X2X_2 Y2Y_2 ⋮\vdots XQX_Q YQY_Q

输出格式

输出 QQ 行。
第 ii 行( 1≤i≤Q1 \le i \le Q )应当包含覆盖 (Xi,Yi)(X_i,Y_i) 的棋子数,作为整数。

4 2
OXXX
XXXX
XXXX
XXXX
6
1 1
1 4
2 2
2 3
3 1
4 4
1
1
1
0
0
0

#### ##.. .... ....
5 10
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
5
1 1
2 3
3 4
4 2
5 5
1
6
12
8
25
8 5
OXXOXXOX
XOXXOXOX
XOOXOOXO
OXOOXOXO
OXXOXXOX
XOXXOXOX
XOOXOOXO
OXOOXOXO
6
7 2
8 1
4 5
8 8
3 4
1 7
5
3
9
14
5
3

提示

NN、MM、XiX_i、YiY_i 和 QQ 为整数。 1≤N≤20001 \le N \le 2000 1≤M≤2×N1 \le M \le 2 \times N SiS_i 由 OO 和 XX 组成。 1≤Q≤2×1051 \le Q \le 2 \times 10^5 1≤Xi,Yi≤N1 \le X_i,Y_i \le N只有格子 (1,1)(1,1) 包含一枚棋子,它覆盖了下列 # 个格子:

标签: AtCoder|abc260G

来源

AtCoder|abc260G