#P8221. [WFOI - 02] I wanna reverse to reserve(翻转)
[WFOI - 02] I wanna reverse to reserve(翻转)
题目背景
君子不器
“我最擅长解谜了,你说是吧,kid。”
“嗯...”
题目描述
kid 走进了一个 行 列的矩阵,不保证矩阵中有 个数字 , 个数字 , , 个数字 但 均为偶数。
现有两种改变矩阵的方式:
- 选择任意一行,将这一行上的数翻转;
- 选择任意一列,将这一列上的数翻转。
每次操作可以选择任意一种方式。
现在需要通过若干次操作,将矩阵变为:
$$n\;行\left\{ \begin{array}{l} 1\quad2\quad3\quad\cdots\quad m\\ \\ 1\quad2\quad3\quad\cdots\quad m\\ \\ \cdots\\ \\ 1\quad2\quad3\quad\cdots\quad m\\ \end{array} \right. $$这样才会出现下一个存档点。
你需要帮 kid 解决这个问题。
你只需要给出答案,剩下的操作就交给 Uvocde 吧!
输入格式
第一行两个正整数 和 ,以下 行,每行 个正整数,表示该矩阵。
输出格式
第一行一个字符串,若不可能有可行的操作方式,则输出 NO
,否则输出 YES
;
如果输出 YES
,下一行输出一个非负整数 ,表示一种共需要 次操作。接下来输出 行,每行一个字符和一个数 (中间有空格),这个字符表示这一次操作是翻转行还是翻转列,若是对某一行进行翻转则为 0
,若翻转某一列则为 1
, 表示翻转第几行或是第几列。
若存在可行方案,则只需输出一组可行解即可(不需要使 最小),但你要使 。
本题采用 ,只要翻转操作正确即可给分。
2 4
1 2 3 4
4 3 2 1
YES
1
0 2
2 4
1 2 3 4
4 1 3 2
NO
提示
【数据范围】
本题采用 Subtask 捆绑测试。
- :最多只有 个数不在规定位置上;
- :;
- :;
- :,;
全部数据满足 ,。