题目:http://poj.org/problem?id=2369


题意:给定一个序列,问需要最少需要置换多少次才能变为有序序列.

分析:对于每一位,算出最少的置换到自己应该的数字。每一位都有这样的数字,取最小公倍数就可以。


#include <iostream>
#include <string.h>
#include <stdio.h>using namespace std;
const int N = 1005;int a[N];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;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];int num = 1;while(tmp != i){tmp = a[tmp];num++;}ans = lcm(ans,num);}printf("%d\n",ans);}return 0;
}

POJ2369 置换群相关推荐

  1. 河南省第二届ACM程序设计大赛解题报告(置换群)

    1. 1 /* 2 前两道题一直在纠结提议,特别是第二题,看了别人的代码才明白过来题意,由测试用例都没明白 3 */ 4 #include <iostream> 5 #include &l ...

  2. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  3. POJ3270 Cow Sorting ——置换群

    我的第一道置换群论题目. 开始的时候不知道这就是置换群,于是对着自己数据各种思考,居然想出来了标准算法的关键部分. 当时的想法是这样的: 从后向前扫描,如果这个数字没有在该在的位置上,那么就用最小的数 ...

  4. 近世代数--置换群--判断置换的奇偶性

    近世代数--置换群--判断置换的奇偶性 置换奇偶性定义 置换分解成轮换的结果是唯一的,置换分解成对换的结果不唯一 证明置换轮换的等价式 置换分解成对换的奇偶性 博主是初学近世代数(群环域),本意是想整 ...

  5. 近世代数--置换群--置换permutation分解成什么?置换的级如何计算?

    近世代数--置换群--置换permutation分解成什么?置换的级如何计算? 置换的分解 置换的级计算 博主是初学近世代数(群环域),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如 ...

  6. poj 3590 The shuffle Problem(置换群+DP)

    题目链接:poj 3590 The shuffle Problem 题意: 给你一个数n,让你找一个字典序最小的置换序列,使得变换整个周期最大. 题解: 由于置换群的性质,我们可以将n拆分成m个数,使 ...

  7. 置换怎么表示成轮换_§2.3 置换群

    让我们暂时先放下上节笔记中循环群美丽的性质,来专心看看置换群吧. 不得不说,置换群只是群的表现形式之一,本身不具有特殊的性质.但是,由于置换群所含内容的广泛性,它可以和其余所有的群(只能是有限群)形成 ...

  8. CodeForces - 1553E Permutation Shift(暴力+置换群求环)

    题目链接:点击查看 题目大意:假设初始时的数组为 [1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],同时 kkk 为偏移量,则原数组会循环右移 kkk 个单位,假设 k= ...

  9. 牛客多校6 - Josephus Transform(线段树求k-约瑟夫环+置换群的幂)

    题目链接:点击查看 题目大意:给出一个长度为 n 的排列,初始时为 1 , 2 , 3 ... n - 1 , n,现在有 m 次操作,每次操作表示为 ( k , x ) ,即进行 x 次 k-约瑟夫 ...

最新文章

  1. 基于 Python 环境搭建 - YOLO 实现吸烟行为监测
  2. 香港中文大学(深圳)招收博士生硕士生(计算机视觉方向)
  3. mysql kingshard 扩容_mysql中间件之kingshard
  4. OpenCV3.0.0下的视频稳像代码,效果不错哦
  5. python开发信息系统权限设置_[Python学习] Django 权限控制
  6. AI理论知识基础(26)-相对熵,KL散度
  7. 正则基础之 NFA引擎匹配原理
  8. Apache2.4配置ssl
  9. Python内置函数——__import__ 的使用方法
  10. python多线程 多进程
  11. linux suid 脚本,Linux使用suid vim.basic文件实现提权
  12. 推荐系统/计算广告相关资料整理
  13. Godaddy域名使用说明
  14. oracle10g   RMAN增量备份策略
  15. java飞机大战游戏
  16. ASP.NET Core 和 EF Core 系列教程——排序、筛选、分页和分组
  17. bandzip屏蔽广告
  18. Linux-lsxxx
  19. Spark的任务调度
  20. Angular入门到精通系列教程(1) - Angular,Vue,React 选型

热门文章

  1. request获得请求头
  2. 斗地主案例的需求分析
  3. ES6新特性之Promise
  4. Calendar类介绍_获取对象的方式
  5. if嵌套-火车站安检-检查刀的长度
  6. SpringMVC中向服务器传输数据(解决get、post、delete、put请求乱码问题)
  7. Lambda表达式的基础知识
  8. python字典有什么用_在Python中使用范围作为字典键,我有什么选...
  9. 如何查看 JSP 和 Servlet 的版本
  10. 使用 Content-Encoding: br 替换 Content-Encoding: gzip