Logo Wy Online Judge

WyOJ

#670. IOIP 20230930 inverting-table

蜘蛛侠诺亚和魔方

时间限制:1 秒
内存限制:256 MB
输入:标准输入
输出:标准输出

题目描述

让我们暂时脱离故事的第二部分,回顾一下第一部分。蜘蛛侠诺亚对魔方非常感兴趣,决定不惜一切代价揭开这个神秘物体的所有秘密。但问题在于——他至今仍无法弄清楚这个奇怪的装置是什么,以及它的用途。

因此,他决定在黑白版本的魔方上进行练习,而且还是二维的,而不是三维的。为此,他取了一个大小为 $n \times m$ 的棋盘格,每个格子被涂成黑色或白色。与魔方类似,可以改变格子的颜色,但不能旋转,而是可以对表格执行两种操作之一:

  • 将任意一列的所有颜色取反;
  • 将任意一行的所有颜色取反。

最终目标是:使得存在一条从表格左上角到右下角的“全黑格子路径”,每一步只能向右或向下移动。换句话说,存在一个黑色格子序列 $(r_1, c_1), (r_2, c_2), \ldots, (r_{n+m-1}, c_{n+m-1})$,满足:

  • $(r_1, c_1) = (1, 1)$,即左上角格子;
  • $(r_{n+m-1}, c_{n+m-1}) = (n, m)$,即右下角格子;
  • 对于序列中任意相邻的两个格子 $(r_i, c_i)$ 和 $(r_{i+1}, c_{i+1})$,要么 $r_i = r_{i+1}$ 且 $c_{i+1} = c_i + 1$,要么 $c_i = c_{i+1}$ 且 $r_{i+1} = r_i + 1$。

请计算得到这样一条路径所需的最少操作次数,或者报告无法通过翻转行和列得到这样的全黑格子路径。蜘蛛侠诺亚非常期待你的帮助。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 2000$)——棋盘的高度和宽度。

接下来 $n$ 行,每行包含 $m$ 个字符,每个字符为 01,表示第 $i$ 行各格子的颜色。字符 0 表示白色,1 表示黑色。

输出格式

如果不可能通过翻转行和列得到从左上角到右下角的全黑格子路径,则输出一个整数 $-1$。

否则,第一行输出两个整数 $r$ 和 $c$——需要翻转的行数和列数。第二行输出 $r$ 个整数,表示需要翻转的行的编号;第三行输出 $c$ 个整数,表示需要翻转的列的编号。

行和列的编号从 $1$ 开始(行从上到下,列从左到右)。可以按任意顺序输出行号和列号。在最小化 $r + c$ 的所有答案中,输出任意一个即可。

样例

样例1

输入:

2 2
10
01

输出:

1 1
1 
1

样例2

输入:

4 4
1111
0001
0001
0000

输出:

1 0
4

样例3

输入:

3 5
10000
01010
00001

输出:

2 1
2 1 
1
题目信息
  • 难度 UKE
  • 控制组 group_default
  • 时间限制 1 s
  • 空间限制 256 MB
  • 数据大小 6.911 MB
提交统计
  • 提交数 0
  • 通过数 0
  • 通过率 N/A