atcoder#ABC260G. [ABC260G] Scalene Triangle Area

[ABC260G] Scalene Triangle Area

题目描述

N × N N\ \times\ N のグリッドがあり、このグリッドの上から i i マス目、左から j j マス目を (i,j) (i,j) と呼びます。
このグリッドの各マスには高々 1 1 個のコマが置かれています。
グリッドの状態は N N 個の文字列 Si S_i として与えられ、

  • Si S_i j j 文字目が O であるとき (i,j) (i,j) 1 1 つコマが置かれていること
  • Si S_i j j 文字目が X であるとき (i,j) (i,j) にコマは置かれていないこと

を表します。

整数 M M が与えられます。 この M M を使って、 (s,t) (s,t) に置かれているコマ P P について、以下の条件を全て満たすマス (u,v) (u,v) P P が守っているマスと定義します。

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

Q Q 個のマス (Xi,Yi) (X_i,Y_i) について、そのマスを守っているコマの個数を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M S1 S_1 S2 S_2 \vdots SN S_N Q Q X1 X_1 Y1 Y_1 X2 X_2 Y2 Y_2 \vdots XQ X_Q YQ Y_Q

输出格式

Q Q 行出力せよ。
そのうち i i ( 1  i  Q 1\ \le\ i\ \le\ Q ) 行目には、マス (Xi,Yi) (X_i,Y_i) を守っているコマの個数を整数として出力せよ。

题目大意

我们有一个 N×NN\times N 的方阵,由 XO 组成,对于一个位于 (s,t)(s,t) 的 O,他可以控制的范围是 (u,v)(u,v),满足:

  • su.s\le u.

  • tv.t\le v.

  • (us)+(vt)2<M(u-s)+\dfrac{(v-t)}{2}<M

给定 N,M,QN,M,QQQ 次询问 Xi,YiX_i,Y_i,询问这个位置被几个 O 控制。

翻译者:@Gemini7X

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

提示

制約

  • N,M,Xi,Yi,Q N,M,X_i,Y_i,Q は整数
  • 1  N  2000 1\ \le\ N\ \le\ 2000
  • 1  M  2 × N 1\ \le\ M\ \le\ 2\ \times\ N
  • Si S_i O, X からなる
  • 1  Q  2 × 105 1\ \le\ Q\ \le\ 2\ \times\ 10^5
  • 1  Xi,Yi  N 1\ \le\ X_i,Y_i\ \le\ N

Sample Explanation 1

マス (1,1) (1,1) のみにコマが置かれ、このコマによって以下の # のマスが守られます。 #### ##.. .... ....