为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

置换群

来自NOCOW
跳转到: 导航, 搜索
//求置换的阶
//先将置换分解为不相交的轮换 , 然后求这些轮换长度的最小公倍数
const int maxn = 1000;
typedef int permutation[maxn+1];
 
permutation p;
 
inline int order(permutation &p)
{
    bool used[maxn+1];
    memset(used , false , sizeof(used));
    int ans = 1;
    for (int i=1 ; i<=p[0] ; i++)
        if (!used[i])
        {
            int l = 0;
            int j = i;
            do 
            {
                l++;
                used[j] = true;
                j = p[j];
            } while (!used[j]);
            ans = lcm(ans , l);
        }
    return ans;
}
个人工具