bzoj2369
Posted 宣毅鸣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj2369相关的知识,希望对你有一定的参考价值。
题解:
显然把每一个环求出来
然后做一个lcm即可
代码:
#include<cstdio> using namespace std; int a[1005],f[1005],n; int gcd(int x,int y) { if (!y)return x; return gcd(y,x%y); } int main() { scanf("%d",&n); for (int i=1;i<=n;i++)scanf("%d",&a[i]); int ans=1; for (int i=1;i<=n;i++) if (!f[i]) { int j=i,num=0; while (j!=i||num==0) { f[j]=1; j=a[j]; num++; } ans=ans/gcd(ans,num)*num; } printf("%d",ans); }
以上是关于bzoj2369的主要内容,如果未能解决你的问题,请参考以下文章