atcoder#AGC015C. [AGC015C] Nuske vs Phantom Thnook

[AGC015C] Nuske vs Phantom Thnook

题目描述

ぬすけ君は、N × M N\ ×\ M のグリッドを持っています。行には上から順に 1 1 から N N 、列には左から順に 1 1 から M M の番号がついています。 グリッドの各マスは白か青かに塗られており、Si,j S_{i,j} 1 1 のとき i i j j 列のマスは青マス、0 0 のとき白マスです。 青く塗られた任意の二つのマス a,b a,b について、a a からはじめて、現在いるマスから辺を共有する青いマスに進むことを繰り返して b b に至るような経路のうち、同じマスを 2 2 度以上通らないようなものは、高々 1 1 通りです。

ぬすけ君の永遠のライバルである怪盗スヌークは、ぬすけ君に Q Q 個の質問をしました。i i 個目の質問は、4 4 つの整数 xi,1,yi,1,xi,2,yi,2 x_{i,1},y_{i,1},x_{i,2},y_{i,2} からなり、 グリッドの xi,1 x_{i,1} 行目から xi,2 x_{i,2} 行目まで、yi,1 y_{i,1} 列目から yi,2 y_{i,2} 列目までの範囲の長方形領域を切り出したときに、 その範囲の青マスからなる連結成分がいくつあるかを答える質問です。

怪盗スヌークの質問すべてに答えてください。

输入格式

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

N N M M Q Q S1,1 S_{1,1} ..S1,M S_{1,M} : SN,1 S_{N,1} ..SN,M S_{N,M} x1,1 x_{1,1} yi,1 y_{i,1} xi,2 x_{i,2} yi,2 y_{i,2} : xQ,1 x_{Q,1} yQ,1 y_{Q,1} xQ,2 x_{Q,2} yQ,2 y_{Q,2}

输出格式

質問ごとに、その範囲の青マスからなる連結成分がいくつあるかを出力せよ。

题目大意

题意:
NuskeNuske 现在有一个NM(N,M<=2000)N*M(N,M<=2000) 的矩阵SS , 若Si,j=1S_i,j=1 , 那么该处为蓝色, 否则为白色, 保证所有蓝色格子构成的连通块都是树.
给出Q(Q<=200000)Q(Q<=200000) 次询问, 每次询问一个子矩阵中蓝色连通块的个数
输入:
第一行N,M,QN,M,Q
接下来NN 行对应矩阵SS , 每行一个长度为MM 且只包含0,10,1 的字符串
接下来QQ 行, 每行四个整数x1,y1,x2,y2x_1,y_1,x_2,y_2 表示相应询问
输出:
QQ 行, 每行一个整数对应相应询问

感谢@凌幽 提供的翻译

3 4 4
1101
0110
1101
1 1 3 4
1 1 3 1
2 2 3 4
1 2 2 4
3
2
2
2
5 5 6
11010
01110
10101
11101
01010
1 1 5 5
1 2 4 5
2 3 3 4
3 3 3 3
3 1 3 5
1 1 3 4
3
2
1
1
3
2

提示

制約

  • 1  N,M  2000 1\ ≦\ N,M\ ≦\ 2000
  • 1  Q  200000 1\ ≦\ Q\ ≦\ 200000
  • Si,j S_{i,j} 0 0 または 1 1 である
  • Si,j S_{i,j} は問題文中の条件を満たす
  • 1  xi,1  xi,2  N(1  i  Q) 1\ ≦\ x_{i,1}\ ≦\ x_{i,2}\ ≦\ N(1\ ≦\ i\ ≦\ Q)
  • 1  yi,1  yi,2  M(1  i  Q) 1\ ≦\ y_{i,1}\ ≦\ y_{i,2}\ ≦\ M(1\ ≦\ i\ ≦\ Q)

Sample Explanation 1

![](https://atcoder.jp/img/agc015/7aa4a2252f50a19fc18e0cec01368a2a.png) 1 1 つ目の質問では、グリッド全体が指定されます。青マスからなる連結成分は 3 3 つあるので、3 3 を出力します。 2 2 つめの質問では、赤枠の範囲が指定されます。青マスからなる連結成分は 2 2 つあるので、2 2 を出力します。 もとのグリッドで同じ成分に属するマスが、異なる成分に属するかもしれないことに注意してください。