CF2011H.Strange Matrix

通过率:0%

AC君温馨提醒

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

题目描述

现有一个 $ n \times m $ 的矩阵 $ a $, 由 $ [0,31] $ 之间的整数构成。

若矩阵中的第 $ i $ 行和第 $ j $ 行 (i≠j)(i \neq j) 同时满足以下条件,我们称其为“奇异矩阵”:

  • 对于每行中的 $ k $ 项 $ (x_1, x_2, \dots, x_k) $,其中 $ 1 \le x_1 < x_2 < \cdots < x_k \le m $,等式 $ a_{i, x_1} \mathbin{&} a_{j, x_1} \mathbin{&} a_{i, x_2} \mathbin{&} a_{j, x_2} \mathbin{&} \cdots \mathbin{&} a_{i, x_k} \mathbin{&} a_{j, x_k} = 0 $ 成立(其中 $ \mathbin{&} $ 表示按位与);
  • 对于每行中的 $ k $ 项 $ (x_1, x_2, \dots, x_k) $,其中 $ 1 \le x_1 < x_2 < \cdots < x_k \le m $,等式 $ a_{i, x_1} \mathbin{|} a_{j, x_1} \mathbin{|} a_{i, x_2} \mathbin{|} a_{j, x_2} \mathbin{|} \cdots \mathbin{|} a_{i, x_k} \mathbin{|} a_{j, x_k} = 31 $ 成立(其中 $ \mathbin{|} $ 表示按位或)。

你可以进行任意次的如下操作:取矩阵的任意一行和一个 $ [0,31] $ 之间的整数 $ y $;随后将这一行的每一项与 $ y $ 进行按位异或运算。将这一操作的代价记为 $ y $。

你的任务是计算出能否将矩阵 $ a $ 变为“奇异矩阵”,以及将其变为“奇异矩阵”的最小代价。

输入格式

每个测试点包含多组测试数据。第一行一个整数 $ t (( 1 \le t \le 100 $)表示数据组数。

每组测试数据的第一行包含三个整数 $ n ,, m ,, k (( 1 \le n, m \le 50 ;; 1 \le k \le m $)。

接下来有 $ n $ 行,其中第 $ i $ 行包含 $ m $ 个整数 $ a_{i, 1}, a_{i, 2}, \dots, a_{i, m} (( 0 \le a_{i, j} \le 31 $)。

输出格式

对于每组测试数据,输出一个整数表示将这个矩阵变为“奇异矩阵”的最小代价;若无解,输出-1。

Translated By HShiDianLu.

输入输出样例

  • 输入#1

    3
    2 3 1
    0 1 0
    1 0 1
    3 2 2
    0 1
    2 3
    4 5
    5 5 5
    0 5 17 4 22
    8 5 16 21 9
    7 25 31 30 8
    0 0 5 15 13
    1 2 3 4 5

    输出#1

    30
    -1
    24

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

首页