用户工具

站点工具


2020-2021:teams:wangzai_milk:20200725比赛记录

这是本文档旧的修订版!


2020牛客暑期多校训练营(第五场)

比赛情况

题号 A B C D E F G H I J K
状态 - - - O O O - - O - -

O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试

比赛时间

2020-07-25 12:00-17:00

题解

E - Bogo Sort

给一种置换 $P$,问有多少种排列可以通过多次这个置换变成单位置换。

相当于求置换 $P^k$ 有多少种不同的值,显然答案就是 $P$ 的每个循环节的 $\text{lcm}$。然后用 $\text{py}$ 水一下高精度就可以了。

点击以显示 ⇲

点击以隐藏 ⇱

def gcd(a,b):
    if(b==0):
        return a
    else:
        return gcd(b,a%b)
 
n = int(input())
p = [0] + [int(x) for x in input().split()]
vis = [0 for i in range(n+1)]
 
ans = 1
 
for i in range(1,n+1):
    if(vis[i] == 0):
        u = p[i]
        l = 1
        vis[i] = 1
        while(vis[u] == 0):
            l+=1
            vis[u] = 1
            u = p[u]
        ans = ans*l//gcd(ans,l)
 
ans = str(ans)
if len(ans) > n:
    ans = ans[-n:-1]
print(ans)

比赛总结与反思

2020-2021/teams/wangzai_milk/20200725比赛记录.1595738885.txt.gz · 最后更改: 2020/07/26 12:48 由 wzx27