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 翻译