J Just Shuffle

题意:给出 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 QPk=A,输出 Q ∗ P Q*P QP

题解:
预备知识:排列的置换运算
Q ∗ P k = A Q*P^k=A QPk=A
( Q ∗ P k ) i n v k = A i n v k (Q*P^k)^{invk}=A^{invk} (QPk)invk=Ainvk
Q ∗ P k = P k Q*P^k=P^k QPk=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} Pkinvk=P1=P=QP=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一定存在,则答案一定有解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值