#CF2158E. 汇点

汇点

汇点

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定一个 nnmm 列的网格,每个格子 (i,j)(i,j) 有一个正整数值 ai,ja_{i,j}。共享一条边的两个格子相邻。

你可以在任意格子上打洞。一个格子 (x,y)(x,y) 满足下列条件之一时称为汇点:

  • 该格子本身有洞;
  • 它相邻于一个已经是汇点的格子 (i,j)(i,j),并且 ax,yai,ja_{x,y}\ge a_{i,j}

网格的美丽值定义为:为了让所有格子都成为汇点,最少需要打多少个洞。

你还需要处理 qq 次修改。每次给出 r,c,xr,c,x,把格子 (r,c)(r,c) 的当前值减少 xx。每次修改后,假设网格中尚未打任何洞,求当前网格的美丽值。

修改具有累积效果。保证每次修改后所有格子的值仍为正整数。

输入格式

第一行包含整数 tt,表示测试组数。

每组数据:

  • 第一行包含两个整数 n,mn,m
  • 接下来 nn 行,每行 mm 个整数,表示初始网格;
  • 接下来一行包含整数 qq
  • 接下来 qq 行,每行包含三个整数 r,c,xr,c,x,表示一次减小操作。

输出格式

对于每组数据输出 q+1q+1 行。

第一行输出初始网格的美丽值;随后依次输出每次修改后的美丽值。

样例输入 1

3
1 4
1 2 3 5
2
1 4 1
1 3 2
3 3
5 1 6
2 9 3
7 4 8
3
2 2 1
2 2 7
3 3 7
3 4
10 10 10 10
10 10 10 10
10 10 11 10
5
3 3 5
2 2 5
2 4 5
2 3 5
1 1 9

样例输出 1

1
1
2
4
4
1
2
1
1
2
3
1
2

数据范围

对于所有数据:

  • 1t1041\le t\le10^4
  • 1n,m1\le n,m1nm2×1051\le nm\le2\times10^5
  • 1ai,j1091\le a_{i,j}\le10^9
  • 0q2×1050\le q\le2\times10^5
  • 1rn1\le r\le n1cm1\le c\le m1x<1091\le x<10^9
  • 所有测试组的 nmnm 之和不超过 2×1052\times10^5
  • 所有测试组的 qq 之和不超过 2×1052\times10^5
  • 每次修改后所有格子值仍大于 00
子任务编号 分值 特殊限制
1 10 q=0q=0
2 20 每组 nm25nm\le25q25q\le25
3 30 初始及每次修改后,同一测试组内所有格子值两两不同
4 40 无特殊限制