CF1977D.XORificator
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个仅包含 0 和 1 的 n×m 二进制矩阵。你还拥有一个“异或器”,可以用它对选定的某一行进行翻转(即将该行的 0 变为 1,1 变为 0)。
如果某一列恰好包含一个 1,则称该列为“特殊列”。你的任务是,找出最多能同时让多少列成为特殊列,并给出应对哪些行使用异或器的方案。
输入格式
每个测试点包含多个测试用例。输入的第一行为一个整数 t(1≤t≤104),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行为两个整数 n 和 m(1≤n,m≤3×105,n⋅m≤3×105)。
接下来的 n 行,每行包含一个长度为 m 的二进制字符串,表示矩阵的一行。
保证所有测试用例中 n⋅m 的总和不超过 3×105。
输出格式
对于每个测试用例,输出两行。
第一行输出最多能同时成为特殊列的列数。
第二行输出一个长度为 n 的二进制字符串,第 i 个字符为 0 表示不对第 i 行使用异或器,为 1 表示对第 i 行使用异或器。
如果存在多种异或器使用方案都能达到最优答案,可以输出任意一种。
输入输出样例
输入#1
5 3 4 1010 0110 0100 1 1 1 1 1 0 2 5 00101 10110 3 3 101 111 000
输出#1
3 010 1 0 1 1 3 00 2 010
说明/提示
在第一个测试用例中,可以对第二行使用异或器,使得第 2、3、4 列成为特殊列。
在第二个测试用例中,唯一的列已经是特殊列,因此无需使用异或器。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?