poj2369 Permutations 置换群
2014-09-03 14:03
363 查看
题意:求一个置换f^k使得得到的置换是一个恒等置换。
思路:求每个独立子置换的循环节长度,然后求所有长度的最小公倍数。
思路:求每个独立子置换的循环节长度,然后求所有长度的最小公倍数。
// file name: poj2369.cpp // // author: kereo // // create time: 2014年09月03日 星期三 13时58分15秒 // //***********************************// #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<set> #include<map> #include<vector> #include<stack> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; const int MAXN=1000+100; const int inf=0x3fffffff; #define L(x) (x<<1) #define R(x) (x<<1|1) int n; int a[MAXN]; int gcd(int a,int b){ return b == 0 ? a : gcd(b,a%b); } int lcm(int a,int b){ return a/gcd(a,b)*b; } int main() { while(~scanf("%d",&n)){ for(int i=1;i<=n;i++) scanf("%d",&a[i]); int ans=1; for(int i=1;i<=n;i++){ int tmp=a[i],cnt=1; while(tmp!=i){ tmp=a[tmp]; cnt++; } ans=lcm(ans,cnt); } printf("%d\n",ans); } return 0; }
相关文章推荐
- POJ 2369 Permutations 【置换群】
- [ACM] poj 2369 Permutations (置换群循环节长度)
- POJ 2369-Permutations(置换群-K次置换后还原有序)
- poj 2369 Permutations (置换群入门)
- poj 2369 Permutations (置换群)
- poj 2369 Permutations(置换群)
- POJ 2369 Permutations(置换群概念题)
- poj 2369 Permutations 【置换群】
- POJ2369 Permutations【置换群】
- POJ 2369 - Permutations 【置换群】
- POJ2369————Permutations(置换群,数论)
- POJ2369 Permutations 置换群循环节
- poj 2369 Permutations(置换群)
- 【POJ】2369 - Permutations(置换群)
- 【置换群】 poj2369 Permutations
- POJ 2369 Permutations【置换群】
- [ACM] poj 2369 Permutations (置换群循环节长度)
- 【POJ 2369】Permutations(置换群)
- POJ 2369 Permutations (置换群)
- [ACM] poj 2369 Permutations (置换群循环节长度)