Bootstrap

小朋友崇拜圈

import os
import sys
# 扩栈:递归层数过大,需要设置最大栈空间
sys.setrecursionlimit(100000)

# 请在此输入您的代码
def dfs(x,length):
    vis[x] = length
    if vis[a[x]] == 0 :
        dfs(a[x],length +1)
    else:
        global ans 
        ans = max(ans,length-vis[a[x]]+1)

n = int(input())
a = list(map(int,input().split()))
a = [0] + a
vis = [0]*(n+1)
ans = 0
for i in range(1,n+1):
    if vis[i] == 0:
        dfs(i,1)
print(ans)

题目链接:0小朋友崇拜圈 - 蓝桥云课

;