D. 【GENOIP#57】烦死出题人的排列(fan)
题目描述
有 $m$ 个长度为 $n$ 排列 $q_1,\dots,q_m$ ,现在你需要自己定义 $k$ 个置换,使得对于任意一个 $q_i$ ,都可以从初始排列 $(1,2,\dots,n)$ 以某种顺序应用这 $k$ 个置换若干次得到。
求 $k$ 的最小值是多少,并给出构造方案。
输入格式
首先给出两个整数 $m,n$ 。然后 $m$ 行每行 $n$ 个数,表示 $q_1,\dots,q_m$ 。
输出格式
首先输出一个数 $k$ ,表示构造的置换个数。随后 $k$ 行每行 $n$ 个数输出构造的置换。若有多种答案,输出任意一种即可。
样例 1
样例 2
3 10
3 4 5 6 7 8 9 10 1 2
6 7 8 9 10 1 2 3 4 5
4 5 6 7 8 9 10 1 2 3
1
2 3 4 5 6 7 8 9 10 1
数据范围与提示
对于 $10\%$ 的数据, $1\leq n\leq3$ ;
对于另外 $20\%$ 的数据, $1\leq n\leq10$ ;
对于另外 $20\%$ 的数据, $1\leq n\leq70$ ;
对于 $100\%$ 的数据, $1\leq n\leq300$ , $1\leq m\leq500$ 。