站外题回关
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/28 17:30
  • 上次更新2024/9/28 19:49:30
查看原帖
站外题回关
1338182
封禁用户楼主2024/9/28 17:30
题目描述
数学上,一个N个数的排列可以看成到自身的一个置换。
例如 置换( 3 4 5 2 1 )表示:
第1个数置换到第3个;
第2个数置换到第4个;
第3个数置换到第5个;
第4个数置换到第2个;
第5个数置换到第1个;

如果原始的数列是: 1 2 3 4 5,则使用一次置换( 3 4 5 2 1 )后变为:5 4 1 2 3;如果再次使用置换( 3 4 5 2 1 )则变为:3 2 5 4 1;多次置换的结果如下:
54123
32541
14325
52143
34521
12345

输入格式
第一行2个正整数:N和M,范围在[1,100]。N表示数列长度,M表示置换次数。
 第二行:有N个整数,为1到N的一个全排列,表示一个置换。

输出格式
M行,每行N个整数。第i行表示置换i次后的数列。

输入/输出例子1
输入:

5 4 
5 1 3 2 4

输出:

2 4 3 5 1 
4 5 3 1 2 
5 1 3 2 4 
1 2 3 4 5
题目描述
N个数的全排列有N!种,比如5个数的排列有5!=120种。但是,前面的置换( 3 4 5 2 1 )我们看到,置换6次后,数列就还原了。
显然,置换( 3 4 5 2 1 )只能得到6个不同的排列,或称这个置换的周期是6。
当N比较大时,周期有可能回很大!

输入格式
第一行1个正整数:N,范围在[1, 1000000],表示字符串长度。
 第二行:有N个整数,为1到N的一个全排列,表示一个置换。

输出格式
 一行,1个数,表示置换的周期数。注意输出的是:答案%1000007。

输入/输出例子1
输入:

5 
5 3 2 1 4 

输出:

6

求助第二题!注意超时

2024/9/28 17:30
加载中...