Hihocoder 数组重排
来源:互联网 发布:诅咒淘宝店网址 编辑:程序博客网 时间:2024/06/01 10:16
题意: 给你个1到n的序列p,每次将所有数移动,第i个数移动到p[i]位置上 ,问最少几次操作,使得 所有 i==p[i]
其实想想也就是 第I个数按照规则移动,会再次回到 i的位置上,需要几次, 要保证所有数同时回到自己位置上,就是要求每个数移动次数的最小公倍数就行了
#include<bits/stdc++.h>using namespace std;long long a[101];long long len ;long long gcd(long long x,long long y){ return x%y==0?y:gcd(y,x%y);}long long lcm(long long x,long long y){ return x*y/gcd(x,y);}int main(){ long long n; scanf("%d",&n); for(long long i = 1; i<=n; i++) scanf("%d",&a[i]); long long flag =1; if(n==1) { printf("0\n"); return 0; } for(long long i =1 ; i<=n; i++) { if(a[i]!=i) flag =1; } if(flag==0) { printf("1\n"); return 0; } memset(vis,0,sizeof(vis)); long long ans = 1; for(long long i = 1; i<=n; i++) { if(i==a[i])continue; long long p = i; long long len = 1; p = a[i]; while(p!=i) { p = a[p]; len++; } ans = lcm(ans, len); } cout<<ans<<endl;}
0 0
- Hihocoder 数组重排
- hihocoder 数组重排
- hihoCoder 1523 : 数组重排2
- hihocoder 1523 : 数组重排2
- hihoCoder 1523 : 数组重排2
- hihocoder #1539 : 数组重排3
- hihoCoder 1523 数组重排2 贪心
- hihocoder 1523 数组重排2 思维
- 数组重排
- [hihoCoder 太阁最新面经算法竞赛6] 数组重排(N个数的最小公倍数)
- hihocoder offer收割19th 数组重排3 八进制位操作 状态压缩
- 随机数组重排
- 数组重排问题
- Javascript数组重排
- shuffle()重排数组
- 数组重排(贪心)
- hihoCoder1330—数组重排
- hihoCoder1330 数组重排
- Redis如何处理客户端连接
- 打造你的专属 Android 代码模板
- 编程之路
- 二叉树的表示
- 使用JSON.parse()转化成json对象需要注意的地方
- Hihocoder 数组重排
- Java for Web学习笔记(三一):JSTL(7)SQL Tag
- Android内存泄漏相关
- 自定义下拉刷新和上拉加载ListView
- Python实现快速排序
- js中三个容易混淆的东东
- 动态加载Fragment的坑
- poj2449 Remmarguts' Date-k短路+A*(待解决)
- Android单例模式怎么写比较好?