CF1993E.Xor-Grid Problem
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个大小为 n×m 的矩阵 a,每个格子中包含一个非负整数。矩阵第 i 行第 j 列的整数记为 ai,j。
我们定义 f(i) 和 g(j) 分别为第 i 行和第 j 列所有整数的 异或 值。在一次操作中,你可以:
- 选择任意一行 i,然后将该行每个元素 ai,j(1≤j≤m)赋值为 g(j);
- 或选择任意一列 j,然后将该列每个元素 ai,j(1≤i≤n)赋值为 f(i)。

如图所示,对矩阵的第 2 列进行一次操作后,该列所有元素发生了变化:
- a1,2:=f(1)=a1,1⊕a1,2⊕a1,3⊕a1,4=1⊕1⊕1⊕1=0
- a2,2:=f(2)=a2,1⊕a2,2⊕a2,3⊕a2,4=2⊕3⊕5⊕7=3
- a3,2:=f(3)=a3,1⊕a3,2⊕a3,3⊕a3,4=2⊕0⊕3⊕0=1
- a4,2:=f(4)=a4,1⊕a4,2⊕a4,3⊕a4,4=10⊕11⊕12⊕16=29
你可以进行任意次数的上述操作。最终,我们通过对所有相邻格子的绝对差值求和,得到最终矩阵的 beauty。
更正式地,beauty(a)=∑∣ax,y−ar,c∣,其中 (x,y) 和 (r,c) 是相邻的格子。两个格子相邻当且仅当它们有公共边。
请你求出所有可能得到的矩阵中,beauty 的最小值。
输入格式
第一行包含一个整数 t(1≤t≤250),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(1≤n,m≤15),表示矩阵的行数和列数。
接下来 n 行,每行包含 m 个整数 ai,1,ai,2,…,ai,m(0≤ai,j<220),表示矩阵 a 的内容。
保证所有测试用例中 (n2+m2) 的总和不超过 500。
输出格式
对于每个测试用例,输出一个整数 b,表示所有可能得到的矩阵中 beauty 的最小值。
输入输出样例
输入#1
4 1 2 1 3 2 3 0 1 0 5 4 4 2 3 0 2 4 4 5 1 3 3 1 2 3 4 5 6 7 8 9
输出#1
1 3 13 24
说明/提示
我们用 r(i) 表示对第 i 行进行第一种操作,用 c(j) 表示对第 j 列进行第二种操作。
在第一个测试用例中,你可以对第 1 列进行一次操作 c(1),将 a1,1:=1⊕3=2。此时矩阵变为:
23
在第二个测试用例中,你可以对第 1 行进行一次操作 r(1),赋值如下:
- a1,1:=g(1)=0⊕5=5
- a1,2:=g(2)=1⊕4=5
- a1,3:=g(3)=0⊕4=4
操作后矩阵变为:
554
544
在第三个测试用例中,最优方案是依次对第 3 列、第 2 行和第 2 列进行操作,最终矩阵为:
046
456
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?