题目
给出一个置换,写出该置换的轮换表示。比如

表示为(1 3 6 7 8 4 2)(5 9)
输入:
置换后的序列
输出:
不相杂的轮换乘积,每行表示一个轮换(轮换的起始数字最小,每个轮换的起始数字递增排序,单轮换省略)
例如:
样例1:
输入:(空格分隔)
3 1 6 2 9 7 8 4 5
输出:
1 3 6 7 8 4 2(空格分隔)
5 9(空格分隔)
样例2:
输入:(空格分隔)
4 6 7 5 1 2 3
输出:
1 4 5(空格分隔)
2 6(空格分隔)
3 7 (空格分隔)
| 编程语言: | C and C++ (VC6, xp32) 42521 |
| 内存最多可用: | 64MB |
| CPU使用时间上限: | 1 秒 |

这是一个C++程序,它接收一个置换后的序列,然后输出该序列的不相交轮换乘积表示。程序通过遍历序列并标记已处理的元素来找到轮换,直到所有元素都被处理。
最低0.47元/天 解锁文章
326

被折叠的 条评论
为什么被折叠?



