
置换群
wtcl
这个作者很懒,什么都没留下…
展开
-
Cipher POJ - 1026(置换群)
题意:给出一个编码的顺序,每经过一次编码第i位上的字符回到第a[i]位上。然后给出一个k,和初始的串,问编码k次后的串是什么。 k可能会很大,不能暴力,所以要用置换群,找出轮换的环,假设环中有m个数,那么每编码m次,就代表这又回到了初始状态,可以用k%m,这样减少编码的次数。如果在记录轮换的位置,那么对于轮换中的第i个字符编码k次,就变成了轮换中的第(i+k)%m个字符。这样直接可以计算出最终的结果。 #include<cstdio> #include<cstring> #inclu原创 2020-07-17 19:21:41 · 133 阅读 · 0 评论 -
Educational Codeforces Round 84 D. Infinite Path(思维 置换群)
思路:从i->p[i]连一条边 会形成若干个环。最后结果需要每个环的颜色都相同 p^k相当于环中的点沿边的方向走k条边,走过的点形成形成一个新的 环。枚举环的长度l的约数,检查形成的新的环颜色是否相同。 #include<cstring> #include<iostream> #include<algorithm> #include<vector...原创 2020-03-27 11:26:38 · 138 阅读 · 0 评论