定义$c=a\times b\rightarrow c[i]=a[b[i]]$,定义每$i$点都有颜色$c_i$,求最小的$k$使得$p^k$这个序列存在$p[i],p[p[i]]..$为相同颜色。
考虑$p^k[i]=p[p[p[..]]]$,若在建立$i\rightarrow p[i]$也就是第$i的第k$个结点。如果要产生颜色一样,一定是形成结点颜色相投的环。
并且可以知道这个环是在原本环上新建的。对于一个环枚举他包含的环,环之间间隔需要$k|size$,不然每个点还是都要访问一边。即枚举一个环的因子。遍历对应环上所有的点。时间复杂度$O(n\sqrt n )$