题意:给出 n , k n,k n,k和一个排列 A = A 1 , A 2 , . . . , A n A={A_1,A_2,...,A_n} A=A1,A2,...,An,定义排列 Q = 1 , 2 , . . . , n Q={1,2,...,n} Q=1,2,...,n,找出一个排列 P = P 1 , P 2 , . . . , P n P={P_1,P_2,...,P_n} P=P1,P2,...,Pn,使得 Q ∗ P k = A Q*P^k=A Q∗Pk=A,输出 Q ∗ P Q*P Q∗P。
题解:
预备知识:排列的置换运算
Q
∗
P
k
=
A
Q*P^k=A
Q∗Pk=A
(
Q
∗
P
k
)
i
n
v
k
=
A
i
n
v
k
(Q*P^k)^{invk}=A^{invk}
(Q∗Pk)invk=Ainvk
又
Q
∗
P
k
=
P
k
Q*P^k=P^k
Q∗Pk=Pk
则有
(
P
k
)
i
n
v
k
=
A
i
n
v
k
(P^k)^{invk}=A^{invk}
(Pk)invk=Ainvk
P
k
∗
i
n
v
k
=
P
1
=
P
=
Q
∗
P
=
A
i
n
v
k
P^{k*invk}=P^1=P=Q*P=A^{invk}
Pk∗invk=P1=P=Q∗P=Ainvk
因此,对于
A
A
A中的每个环,找出
k
k
k的逆元,让
A
A
A做
i
n
v
k
invk
invk次运算。
因为
k
k
k是大质数,故
i
n
v
k
invk
invk一定存在,则答案一定有解。