CF1447B Numbers Box
题目描述
给定一个有 $n$ 行 $m$ 列的矩形网格。位于第 $i$ 行第 $j$ 列的单元格中写有一个值 $a_{ij}$。
你可以进行如下操作任意次(可以为零次):
- 选择任意两个相邻的单元格,并将它们的值都乘以 $-1$。如果两个单元格有公共边,则称它们是相邻的。
注意,你可以在不同的操作中多次使用同一个单元格。
你关心 $X$,即网格中所有数字的和。
你能通过这些操作得到的 $X$ 的最大值是多少?
输入格式
每组测试数据包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $m$($2 \le n, m \le 10$)。
接下来的 $n$ 行,每行包含 $m$ 个整数,第 $i$ 行第 $j$ 个元素为 $a_{ij}$($-100 \leq a_{ij} \le 100$)。
输出格式
对于每个测试用例,输出一个整数 $X$,即经过任意次数操作后,网格中所有数的最大可能和。
说明/提示
在第一个测试用例中,总会有至少一个 $-1$,所以答案是 $2$。
在第二个测试用例中,我们可以对相邻的元素进行六次操作,使所有数字都变为非负。因此答案为:$2\times 1 + 3\times2 + 3\times 3 + 2\times 4 + 1\times 5 = 30$。
由 ChatGPT 4.1 翻译