bzoj#P2715. [Violet 3]最优指令

[Violet 3]最优指令

当前没有测试数据。

题目描述

我们现在来讨论一种机器的抽象模型。
这种机器有一个有限的状态集 S=s0,s1,s2,,snS={s_0 , s_1 , s_2 , \ldots , s_n} 和一个有限的指令集 C=c0,c1,c2,,cmC={c_0 , c_1 , c_2 , \ldots , c_m}
机器在任意时刻都处于某一种状态 sSs \in S
同时,机器还有一个转移函数 f:S×CSf : S \times C \rightarrow S ,表示机器在当前状态下接到某个指令之后会转移到的状态,亦即机器在状态 ss 下接到指令 cc 后状态会变成 f(s,c)f(s , c)
现在对于一个机器的实例,你需要计算一个最短的指令序列,使得对于任意一个状态 ss ,按照顺序经过序列中的所有指令之后机器一定会处于状态 s0s_0

输入格式

第一行包含两个整数 S\left| S \right|C\left| C \right|

之后 S\left| S \right| 行,每行 C\left| C \right| 个整数。
若输入文件中的行和列均从 11 开始标号,那么第 ii 行第 jj 列的数为 kk 就表示 f(si2,ck1)=skf(s_{i-2} , c_{k-1}) = s_k (0k<S)(0 \le k < \left| S \right|)

输出格式

输出你求得的最短指令序列。
你需要将指令的下表连续输出,并且输出下标的十六进制,表示法中的字母用小写字母表示。
若最短的序列不唯一,输出任意一个即可。
若这样的序列不存在,输出 impossibleimpossible

8 8
0 0 5 6 4 3 7 7
3 4 3 2 6 6 5 1
6 7 1 3 6 3 5 7
2 2 3 0 0 7 5 1
5 3 6 3 3 2 6 4
2 4 6 2 5 6 5 1
6 2 2 1 5 4 3 3
5 7 6 5 7 0 6 5
12133

数据范围

  • 对于全部数据,保证 S,S16\left| S \right| , \left| S \right| \le 16 ,输入数据保证是合法的。