⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1024.cpp

📁 我的URAL的1000 ~ 1050 的全部代码 包含WA 最后AC的程序 有2~3个比较难的是MAIGO的程序
💻 CPP
字号:
#include <iostream>
using namespace std;

const int maxN = 1000;
int a[maxN + 1], len[ maxN + 1 ];
bool visit[maxN + 1];
int gcd(int a, int b)
{
    while( b != 0 )
    { int c = a%b; a = b; b = c; }
    return a; 
}

int gbs(int a,int b)   //lcm least common multiple
{
    int c = gcd(a, b);
    return a/c*b;
}
int main()
{
    int i,n,t;
    memset( visit ,false ,sizeof( visit ) );
    
    cin >> n;
    for( i = 1; i <= n; i++ )
         cin >> a[i];
    for( i = 1; i <= n; i++ )
    {
         int c = 0;
         t = i;
         if ( !visit[i] ) do {
            t = a[t];
            c++;
            visit[t] = true;
          }
         while( t != i );
         
         len[i] = c;
    }
    
    int ans = 1;
    for( i  =1; i <= n; i++)
    {
         if(len[i] != 0 )ans = ( gbs( ans, len[i] ) );
    }
    cout << ans << endl;
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -