AT_abc260_g [ABC260G] Scalene Triangle Area
题目描述
有一个 $N \times N$ 的网格,我们称从上往下第 $i$ 行,从左往右第 $j$ 列的格子为 $(i,j)$。
每个格子上至多放有 $1$ 个棋子。
网格的状态由 $N$ 个字符串 $S_i$ 给出:
- 当 $S_i$ 的第 $j$ 个字符为 `O` 时,表示 $(i,j)$ 上有 $1$ 个棋子;
- 当 $S_i$ 的第 $j$ 个字符为 `X` 时,表示 $(i,j)$ 上没有棋子。
给定整数 $M$。对于放在 $(s,t)$ 的棋子 $P$,定义 $P$ 能“守护”的格子 $(u,v)$ 满足以下所有条件:
- $s \le u \le N$
- $t \le v \le N$
- $(u-s) + \frac{(v-t)}{2} < M$
现在给定 $Q$ 个格子 $(X_i, Y_i)$,请你求出每个格子被多少个棋子守护。
输入格式
输入按以下格式从标准输入给出。
> $N$ $M$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
> $Q$
> $X_1$ $Y_1$
> $X_2$ $Y_2$
> $\vdots$
> $X_Q$ $Y_Q$
输出格式
输出 $Q$ 行。
第 $i$ 行输出格子 $(X_i, Y_i)$ 被守护的棋子数量。
说明/提示
### 数据范围
- $N, M, X_i, Y_i, Q$ 为整数
- $1 \le N \le 2000$
- $1 \le M \le 2N$
- $S_i$ 只包含 `O` 和 `X`
- $1 \le Q \le 2 \times 10^5$
- $1 \le X_i, Y_i \le N$
### 样例解释 1
只有 $(1,1)$ 有棋子,该棋子能守护如下用 `#` 表示的格子:
```
####
##..
....
....
```
由 ChatGPT 4.1 翻译