CF2275H A Problem to Warm Up the Eyebrows
题目描述
K1o0n 给他的朋友 Noobish\_Monk 想出了这个有趣的游戏。他们给出一个由整数构成的矩形表格,对于表格中的每一个实心矩形区域,Noobish\_Monk 要么获得一些分数,要么反之失去一些分数——这取决于这个矩形区域的形状。Noobish\_Monk 的任务就是计算他最终可以获得多少钱,但他又把题目错误地读了 998244353 次,结果被卡在了一个不重要的地方。
现在也邀请你来试试这个游戏!
给定一个有 $n$ 行 $m$ 列的整数矩阵 $A$。一个子矩阵是表格中任意的一个实心矩形区域,它由左上角和右下角的行列号确定。假设一个子矩阵占据了 $a$ 行 $b$ 列,并且其所有数的和为 $S$。如果 $a+b$ 为偶数,则 Noobish\_Monk 获得 $S^2$,如果 $a+b$ 为奇数,则他失去 $S^2$。这个数被称为该子矩阵的“代价”:
$$
(-1)^{a+b}\,S^2.
$$
整个表格的“价格”就是所有子矩阵的代价之和,包括整个表格本身。请你帮他计算出 $A$ 的价格。结果可能为负数,数值也可能非常大,请你将结果对 $\mathbf{10^9+7}$ 取模后输出。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$)——表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n, m$,且 $1 \le n \cdot m \le 10^6$)——表示矩阵的行数和列数。
接下来的 $n$ 行,每行包含 $m$ 个整数:第 $i$ 行第 $j$ 个整数为 $A_{i,j}$($-10^9 \le A_{i,j} \le 10^9$)。
保证所有测试用例中 $n \cdot m$ 的总和不超过 $10^6$。
输出格式
对于每个测试用例,输出一行,一个整数,表示这个矩阵的“价格”模 $10^9+7$ 的结果,范围为 $[0,\;10^9+6]$。
说明/提示
由 ChatGPT 5 翻译