A117036.[COCI 2024/2025 #3] 涂矩阵 / Bojanje
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一个初始为全白的 n×n 矩阵。
每次操作可以选择一列或者一行,将这一列或者这一行覆盖成红色或者蓝色。
给定矩阵的目标状态,请你构造一组操作序列,使得矩阵达到目标状态,或者报告无解。
不需要最小化操作序列的长度,只需要构造出合法方案即可。
输入格式
第一行,一个正整数 n。
接下来 n 行,每行 n 个整数,第 i 行第 j 个整数 ai,j 描述目标状态中第 i 行第 j 列格子的颜色:
0 表示白色。
1 表示红色。
2 表示蓝色。
输出格式
如果无解,输出 −1。
否则,第一行输出一个整数 k,表示操作序列长度。
你需要保证 0≤k≤4000。
接下来 k 行,每行三个正整数 a,b,c,依次描述一次操作:
a∈{1,2}。
a=1 表示选择的是行。
a=2 表示选择的是列。
1≤b≤n,表示选择的是第 b 行或者第 b 列。
c∈{1,2}。
c=1 表示涂成红色。
c=2 表示涂成蓝色。
输入输出样例
输入#1
3 0 0 1 1 1 1 0 0 1
输出#1
2 2 3 1 1 2 1
输入#2
3 1 1 2 2 1 1 2 1 1
输出#2
-1
输入#3
4 0 1 2 1 2 2 2 1 0 1 2 1 1 1 2 1
输出#3
5 2 2 1 1 2 2 2 4 1 1 4 1 2 3 2
说明/提示
数据范围
对于 100% 的数据:
1≤n≤2000
0≤ai,j≤2
输出操作数需要满足:
0≤k≤4000
子任务
| 子任务编号 | n≤ | 特殊性质 | 得分 |
|---|---|---|---|
| 1 | 2000 | 特殊性质 A | 15 |
| 2 | 100 | 无 | 35 |
| 3 | 2000 | 无 | 40 |
特殊性质 A:ai,j∈{0,1}。