poj 2369 Permutations
2011-10-24 12:10
232 查看
问:一串数字经过多少次映射能变回自己?
例:4,1,5,2,3->2,4,3,1,5->1,2,5,4,3->4,1,3,2,5->2,4,5,1,3->1,2,3,4,5->4,1,5,2,3
要经过6次映射能变回4,1,5,2,3
可以看出,“4”只需要经过3次就变回“4”了,“5”只需要2次,而“4,5”要同时变回去的话,就需要(2,3)的最小公倍数次,6次。
例:4,1,5,2,3->2,4,3,1,5->1,2,5,4,3->4,1,3,2,5->2,4,5,1,3->1,2,3,4,5->4,1,5,2,3
要经过6次映射能变回4,1,5,2,3
可以看出,“4”只需要经过3次就变回“4”了,“5”只需要2次,而“4,5”要同时变回去的话,就需要(2,3)的最小公倍数次,6次。
#include <stdio.h> int gcd(int a,int b) { return b?gcd(b,a%b):a; } int lcm(int a,int b) { return a/gcd(a,b)*b; } int main() { int n,i,a,b,ans,num,p[1005]; while (scanf("%d",&n)!=EOF) { ans=1; for (i=1;i<=n;i++) scanf("%d",&p[i]); for (i=1;i<=n;i++) { b=p[i],a=p[b]; num=1; while (b!=a) { a=p[a]; num++; } ans=lcm(ans,num); } printf("%d\n",ans); } return 0; }
相关文章推荐
- [ACM] poj 2369 Permutations (置换群循环节长度)
- POJ 2369 - Permutations 【置换群】
- Cow Sorting && Permutations(poj 3270 && 2369)
- POJ2369 Permutations 置换群循环节
- poj 2369 Permutations
- [ACM] poj 2369 Permutations (置换群循环节长度)
- POJ 2369 Permutations
- poj2369 Permutations 置换群
- poj 2369 Permutations(置换群)
- POJ 2369|URAL 1024|Permutations|置换求循环节长度
- POJ 2369 Permutations
- poj 2369 Permutations(置换群)
- POJ 2369 Permutations(置换群概念题)
- 【置换群】 poj2369 Permutations
- POJ 2369 Permutations (置换的秩P^k = I)
- poj 2369 Permutations 更换水称号
- poj 2369 permutations
- POJ 2369 Permutations (置换的秩P^k = I)
- 【POJ】2369 - Permutations(置换群)
- POJ 2369 Permutations