#P7686. [CEOI2005] Multi-key Sorting
[CEOI2005] Multi-key Sorting
题目描述
考虑一个包含行和列的表。列从 到 编号。为简单起见,表中的项目是由小写字母组成的字符串。
您将获得对此类表的 Sort() 操作:Sort() 按照列 中的值的顺序对表的行进行排序(而列的顺序不会改变)。排序是稳定的,即在第 列中具有相等值的行保持其原始顺序。例如,将 Sort() 应用于表 会产生表 。
我们对此类排序操作的序列感兴趣。这些操作依次应用于同一个表。例如,应用序列 Sort();Sort() 到表 产生表 。
如果两个排序操作序列对于任何表具有相同的效果,则它们被称为等效。例如,Sort();Sort();Sort() 等效于 Sort();Sort()。但是,它不等效于 Sort();Sort(),因为对表 的影响不同。
输入格式
第一行包含两个整数, 和 。 是列数, 是排序操作数。第二行包含 个整数,。它定义了排序操作的顺序 Sort();; Sort()。
输出格式
第一行包含一个整数 ,为输入的操作序列的最短等效排序操作序列的长度。第二行包含 个整数,表示其最短操作序列。
4 6
1 2 1 2 3 3
3
1 2 3
提示
数据规模与约定
对于 的数据,,,。
题目说明
来源于 CENTRAL-EUROPEAN OLYMPIAD IN INFORMATICS 2005 的 Multi-key Sorting。
由 @求学的企鹅 翻译整理。