loj#P3361. 「JOI Open 2020」家具摆放

「JOI Open 2020」家具摆放

题目描述

译自 JOI Open 2020 T1 「家具の配置 / Furniture

JOI 君房间的形状是矩形,由 N×MN\times M 个单元格组成。这个房间有 NN 个横排,每个横排平行于东西方向。有 MM 个竖排,每个竖排平行于南北方向。从北数第 ii 个,从西数第 jj 个格子表示为 (i,j)(i,j) 格。单元格里放有一些家具。对于 i,j (1iN,1jM)i,j\ (1\le i\le N,1\le j\le M),如果 Ci,j=1C_{i,j}=1,就表示 (i,j)(i,j) 格中有一件家具。如果 Ci,j=0C_{i,j}=0,就表示 (i,j)(i,j) 格中没有家具。

如果我们可以从 (1,1)(1,1) 出发,只向南或向东走,并且不经过放有家具的格子的情况下到达 (N,M)(N,M),我们就称这种家具摆放方式是好的。保证初始时家具摆放方式是好的。

JOI 君会进行 QQ 次操作,第 k (1kQ)k\ (1\le k\le Q) 次操作按如下方法进行:

  • 如果一件新家具放置在 (Xk,Yk)(X_k,Y_k) 格中后,家具摆放方式仍然是好的,那么就在 (Xk,Yk)(X_k,Y_k) 格中放一件新家具,否则他不进行操作。

注意,他不会将新家具放在初始有家具或进行过家具摆放操作的格子中。初始 (1,1)(1,1)(N,M)(N,M) 格子中不会有家具,并且他不会对这两个格子进行操作。给定房间大小,初始家具摆放情况和他要进行操作的格子,写一个程序确定每次操作会不会进行。

输入格式

第一行两个整数 N,MN,M

接下来 NN 行,每行 MM 个整数 Ci,jC_{i,j},表示初始家具摆放情况。

接下来一行一个整数 QQ,表示询问次数;

接下来 QQ 行,每行两个整数 Xk,YkX_k,Y_k,表示每次新家具的摆放位置。

输出格式

输出 QQ 行到标准输出。第 k (1kQ)k\ (1\le k\le Q) 行输出对第 kk 次操作的回答。如果 JOI 君可以在 (Xk,Yk)(X_k,Y_k) 格中放一件新家具,则输出 11,否则输出 00

2 3
0 0 1
0 0 0
3
2 2
2 1
1 2
0
1
0
2 5
0 0 0 0 0
0 0 0 1 0
2
1 2
2 2
0
1

数据范围与提示

对于全部数据,$1\le N,M\le 10^3,0\le C_{i,j}\le 1,1\le Q\le N\times M$,保证:

  • C1,1=CN,M=0C_{1,1}=C_{N,M}=0
  • 初始家具摆放方式是好的;
  • 1XkN,1YkM (1kQ)1\le X_k\le N,1\le Y_k\le M\ (1\le k\le Q)
  • (Xk,Yk)(1,1)(X_k,Y_k)\neq (1,1)(Xk,Yk)(N,M) (1kQ)(X_k,Y_k)\neq (N,M)\ (1\le k\le Q)
  • CXk,Yk1 (1kQ)C_{X_k,Y_k}\neq 1\ (1\le k\le Q)
  • (Xk,Yk)(Xl,Yl) (1k<lQ)(X_k,Y_k)\neq (X_l,Y_l)\ (1\le k<l\le Q)

详细子任务附加限制及分值如下:

  • 子任务 1155 分):N,M100N,M\le 100
  • 子任务 229595 分):无附加限制。