#P12901. [NERC 2020] Button Lock

    ID: 12718 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>2020网络流Special Judge费用流ICPCNERC/NEERC

[NERC 2020] Button Lock

Description

你站在一个藏有巨大宝藏的房间门前。唯一的阻碍是一个带有按钮组合锁的门。这把锁有 dd 个按钮,分别标有数字 00d1d - 1。每次按下按钮时,它会保持按下状态。你不能单独弹起一个按钮,但有一个 "RESET" 按钮——按下它会弹起所有其他按钮。初始状态下,所有按钮均未按下。

当某些特定的数字组合被按下时,门会立即打开。遗憾的是,你并不知道密码。通过阅读该锁的文档,你发现这把锁有 nn 种可能的密码。

请找出最短的按钮操作序列,使得在执行过程中所有可能的密码至少出现一次。任何最短的正确操作序列都将被接受。

Input Format

第一行包含两个整数 ddnn1d101 \le d \le 101n2d11 \le n \le 2^d - 1)。
接下来的 nn 行描述了可能的密码。每行包含一个由 dd 个 0 和 1 组成的字符串 sis_i:对于所有 jj11dd,第 jj 个字符为 1\tt{1} 当且仅当数字为 j1j - 1 的按钮必须被按下。

所有字符串 sis_i 均不相同,且每个字符串至少包含一个 1\tt{1}

Output Format

第一行输出一个整数 kk,表示最小的按钮操作次数。
第二行输出 kk 个标记,描述操作序列。按下数字按钮时,输出对应的数字;按下 "RESET" 按钮时,输出 R\tt{R}

2 2
10
11
2
0 1
3 4
001
111
101
011
6
2 0 R 1 2 0

Hint

在第二个示例中,序列 12R201\tt{1 2 R 2 0 1} 也是可行的。

翻译由 DeepSeek V3 完成