#P13619. [ICPC 2024 APC] Duplicates
[ICPC 2024 APC] Duplicates
题目描述
我们称一个数字序列含有重复元素,如果序列中存在出现一次以上的元素。形式化地讲,一个序列 含有重复元素,如果存在两个不等的下标 和 使得 。
给定一个 的矩阵 。 中的每个元素都是一个 到 之间(含两端)的整数。你可以将 中零个或多个元素修改为 到 之间(含两端)的任意整数。不同的元素可以修改为不同的整数。
你的任务是通过修改 中的元素,使得以下所有条件都成立:
- 对于每一行 ,序列 含有重复元素。
- 对于每一列 ,序列 含有重复元素。
你需要计算达成此目标所需的最小修改次数。同时,找出一种可行的修改方案。对于每次修改,你需要指明修改的是哪个元素以及它的新值。请注意,当给定的矩阵 已经满足上述条件时,所需的最小修改次数可以为零。
输入格式
输入的第一行包含一个整数 (),代表测试用例的数量。之后是 个测试用例。每个测试用例的格式如下。
一个测试用例的第一行包含一个整数 ()。 接下来的 行,每行包含 个整数。第 行的第 个整数代表 ()。
在单个输入文件中,所有测试用例的 的总和不超过 。
输出格式
对于每个测试用例,按以下格式输出一组修改方案。
第一行输出一个整数 ,代表需要修改的元素的最小数量。 在接下来的 行中,每行输出三个整数 。这代表一次修改,即将元素 的值修改为 。这三个整数都必须在 和 之间(含两端)。
如果存在多种解法,你可以输出其中任意一种。
5
4
3 2 1 1
2 1 3 4
1 3 3 1
4 4 4 2
3
1 3 1
2 1 3
3 2 2
5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
3
1 1 2
2 2 1
2 3 2
3
1 1 3
3 2 1
3 1 3
2
2 1 1
4 2 3
3
2 1 3
2 2 3
3 3 3
0
1
1 2 2
1
2 1 1
提示
样例解释 #1
在第一个测试用例中,修改后的矩阵如下所示。
$$\begin{bmatrix} 3 & 2 & 1 & 1 \\ 1 & 1 & 3 & 4 \\ 1 & 3 & 3 & 1 \\ 4 & 3 & 4 & 2 \\ \end{bmatrix} $$