CF2033B Sakurako and Water
题目描述
在与浩介的旅途中,樱子和浩介发现了一个山谷,这个山谷可以表示为一个大小为 $n \times n$ 的矩阵,在 $i$ 行和 $j$ 列的交点上有一座高度为 $a_{i,j}$ 的山;如果 $a_{i,j} < 0$,那么那里有一个湖。
浩介非常怕水,所以樱子需要帮助他:
- 她可以用魔法选择一个**正方形**的山峰区域,并将该区域**主对角线**上的每座山峰的高度正好增加一个。
更正式地说,她可以选择一个左上角位于 $(i, j)$,右下角位于 $(p, q)$ 的子矩阵,满足 $p-i=q-j$。然后在 $(i + k)$ 行和 $(j + k)$ 列的交点处的每个元素上加 $1$,其中 $k$ 满足 $0 \le k \le p-i$。
求樱子使用魔法的最少次数,这样就没有湖泊了。
输入格式
第一行包含一个整数 $t$($1 \le t \le 200$),测试用例数。
每个测试用例的描述如下:
- 每个测试用例的第一行包含一个数字 $n$($1 \le n \le 500$)。
- 接下来的每行 $n$ 都由 $n$ 个整数组成,中间用空格隔开,这些整数对应山谷中的山高 $a$($-10^5 \le a_{i,j} \le 10^5$)。
保证所有测试用例中 $n$ 的总和不超过 $1000$。
输出格式
针对每个测试案例,输出樱子使用魔法使所有湖泊消失的最少次数。
说明/提示
### 样例解释
#### 样例 1
矩阵中没有负数(即没有湖),因此不需要任何魔法操作。
#### 样例 2
- 只有一个湖位于 $(1,1)$,高度为 $-1$。
- 我们需要选择一个包含 $(1,1)$ 的正方形区域,并对其主对角线上的元素加 $1$。
- 因此答案是 $1$。
#### 样例 3
- 湖位于 $(2,1)$、$(2,3)$ 和 $(3,3)$,高度分别为 $-2$、$-1$ 和 $-1$。
- 一种可能的操作步骤:
1. 选择 $2 \times 2$ 的正方形(从 $(2,1)$ 到 $(3,2)$),主对角线为 $(2,1)$ 和 $(3,2)$:
- $(2,1)$ 变为 $-2 + 1 = -1$。
- $(3,2)$ 变为 $0 + 1 = 1$。
- 矩阵变为:
```test
[ 1, 2, 3]
[-1, 1, -1]
[ 0, 1, -1]
```
2. 选择 $1 \times 1$ 的正方形(仅 $(2,1)$),操作 $1$ 次:
- $(2,1)$ 变为 $-1 + 1 = 0$。
4. 选择 $1 \times 1$ 的正方形(仅 $(2,3)$),操作 $1$ 次:
- $(2,3)$ 变为 $-1 + 1 = 0$。
5. 选择 $1 \times 1$ 的正方形(仅 $(3,3)$),操作 $1$ 次:
- $(3,3)$ 变为 $-1 + 1 = 0$。
- 最终矩阵:
```test
[1, 2, 3]
[0, 1, 0]
[0, 1, 0]
```
- 总操作次数:$4$。
样例解释由 DeepSeek V3 完成。