CF1993E.Xor-Grid Problem

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个大小为 n×mn \times m 的矩阵 aa,每个格子中包含一个非负整数。矩阵第 ii 行第 jj 列的整数记为 ai,ja_{i,j}。

我们定义 f(i)f(i) 和 g(j)g(j) 分别为第 ii 行和第 jj 列所有整数的 异或 值。在一次操作中,你可以:

  • 选择任意一行 ii,然后将该行每个元素 ai,ja_{i,j}(1≤j≤m1 \le j \le m)赋值为 g(j)g(j);
  • 或选择任意一列 jj,然后将该列每个元素 ai,ja_{i,j}(1≤i≤n1 \le i \le n)赋值为 f(i)f(i)。

如图所示,对矩阵的第 22 列进行一次操作后,该列所有元素发生了变化:

  • a1,2:=f(1)=a1,1⊕a1,2⊕a1,3⊕a1,4=1⊕1⊕1⊕1=0a_{1,2} := f(1) = a_{1,1} \oplus a_{1,2} \oplus a_{1,3} \oplus a_{1,4} = 1 \oplus 1 \oplus 1 \oplus 1 = 0
  • a2,2:=f(2)=a2,1⊕a2,2⊕a2,3⊕a2,4=2⊕3⊕5⊕7=3a_{2,2} := f(2) = a_{2,1} \oplus a_{2,2} \oplus a_{2,3} \oplus a_{2,4} = 2 \oplus 3 \oplus 5 \oplus 7 = 3
  • a3,2:=f(3)=a3,1⊕a3,2⊕a3,3⊕a3,4=2⊕0⊕3⊕0=1a_{3,2} := f(3) = a_{3,1} \oplus a_{3,2} \oplus a_{3,3} \oplus a_{3,4} = 2 \oplus 0 \oplus 3 \oplus 0 = 1
  • a4,2:=f(4)=a4,1⊕a4,2⊕a4,3⊕a4,4=10⊕11⊕12⊕16=29a_{4,2} := f(4) = a_{4,1} \oplus a_{4,2} \oplus a_{4,3} \oplus a_{4,4} = 10 \oplus 11 \oplus 12 \oplus 16 = 29

你可以进行任意次数的上述操作。最终,我们通过对所有相邻格子的绝对差值求和,得到最终矩阵的 beautybeauty。

更正式地,beauty(a)=∑∣ax,y−ar,c∣beauty(a) = \sum|a_{x,y} - a_{r,c}|,其中 (x,y)(x, y) 和 (r,c)(r, c) 是相邻的格子。两个格子相邻当且仅当它们有公共边。

请你求出所有可能得到的矩阵中,beautybeauty 的最小值。

输入格式

第一行包含一个整数 tt(1≤t≤2501 \le t \le 250),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n,m≤151 \le n, m \le 15),表示矩阵的行数和列数。

接下来 nn 行,每行包含 mm 个整数 ai,1,ai,2,…,ai,ma_{i,1}, a_{i,2}, \ldots, a_{i,m}(0≤ai,j<2200 \le a_{i,j} < 2^{20}),表示矩阵 aa 的内容。

保证所有测试用例中 (n2+m2)(n^2 + m^2) 的总和不超过 500500。

输出格式

对于每个测试用例,输出一个整数 bb,表示所有可能得到的矩阵中 beautybeauty 的最小值。

输入输出样例

  • 输入#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)r(i) 表示对第 ii 行进行第一种操作,用 c(j)c(j) 表示对第 jj 列进行第二种操作。

在第一个测试用例中,你可以对第 11 列进行一次操作 c(1)c(1),将 a1,1:=1⊕3=2a_{1,1} := 1 \oplus 3 = 2。此时矩阵变为:

23

在第二个测试用例中,你可以对第 11 行进行一次操作 r(1)r(1),赋值如下:

  • a1,1:=g(1)=0⊕5=5a_{1,1} := g(1) = 0 \oplus 5 = 5
  • a1,2:=g(2)=1⊕4=5a_{1,2} := g(2) = 1 \oplus 4 = 5
  • a1,3:=g(3)=0⊕4=4a_{1,3} := g(3) = 0 \oplus 4 = 4

操作后矩阵变为:

554
544

在第三个测试用例中,最优方案是依次对第 33 列、第 22 行和第 22 列进行操作,最终矩阵为:

046
456

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页