POJ2369 Permutations【置换群】
题目链接:
http://poj.org/problem?id=2369
题目大意:
给定一个序列。问最少须要多少次置换才干变为 1、2、…、N 的有序序列。比方说给
定5个数的序列 4 1 5 2 3。表示置换为:
( 1 2 3 4 5 ) ,即 (1 4 2)(3 5)
4 1 5 2 3
解题思路:
对于每一位找到自己轮换内轮换到自己的次数。求不相交的轮换之间的次数的公倍数,
即为终于结果。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std; int GCD(int a,int b)
{
if(b == 0)
return a;
return GCD(b,a%b);
} int LCM(int a,int b)
{
return a / GCD(a,b) * b;
} int A[1100],vis[1100];//vis[]标记轮换 int main()
{
int N;
while(~scanf("%d",&N))
{
memset(vis,0,sizeof(vis));
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;
vis[i] = 1;
while(tmp != i && !vis[tmp])
{
vis[tmp] = 1;
tmp = A[tmp];
Num++;
}
Ans = LCM(Ans,Num);
}
printf("%d\n",Ans);
} return 0;
}
POJ2369 Permutations【置换群】的更多相关文章
- poj2369 Permutations ——置换群
link:http://poj.org/problem?id=2369 置换群,最简单的那种. 找所有数字循环节的最小公倍数. /* ID: zypz4571 LANG: C++ TASK: perm ...
- POJ2369 Permutations(置换的周期)
链接:http://poj.org/problem?id=2369 Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- POJ 2369 Permutations(置换群概念题)
Description We remind that the permutation of some final set is a one-to-one mapping of the set onto ...
- Uva 11077 Find the Permutations [置换群 DP]
题意: 给定$n$和$k$,问有多少排列交换$k$次能变成升序 $n \le 21$ $uva$貌似挂掉了$vjudge$上一直排队 从某个排列到$1,2,...,n$和从$1,2,...,n$到某个 ...
- POJ置换群入门[3/3]
POJ 3270 Cow Sorting 题意: 一个序列变为升序,操作为交换两个元素,代价为两元素之和,求最小代价 题解: 看了黑书... 首先循环因子分解 一个循环完成的最小代价要么是循环中最小元 ...
- acm数学(待续)
意图写出http://www.cnblogs.com/kuangbin/archive/2012/08/28/2661066.html这个东西的完善版. 1.置换,置换的运算 poj 2369 Per ...
- poj1026 Cipher ——置换群
link:http://poj.org/problem?id=1026 其实这道题目和poj2369这道题目一样. 都是基础的置换群题目.把那道题目理解了,这道题就没问题了. 不过我的方法貌似比较挫, ...
- poj 2369(置换群)
Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3041 Accepted: 1641 Desc ...
- Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
随机推荐
- css part 2
CSS 盒子模型 margin: 用于控制元素与元素之间的距离:margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的. padding: ...
- WebSocket 前端封装
$.extend({ socketWeb:function (opt) { if("WebSocket" in window){ var setting=$.extend({ ur ...
- Hibernate中如何完成持久化类和数据库映射文件
因为最近写项目需要要到,就在这里码码字,方便以后做一个参考,在这里,我通过的是myeclipse的反向工程来配置持久化类和数据的映射文件的. 1.打开myeclipse,打开数据库视图,对应的是Win ...
- size(A,1)
在matlab中,size()用来返回数据序列的行数和列数.size(A,1)返回的是矩阵A所对应的行数.另外,(1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时 ...
- Java Bean 简单介绍及其应用
Bean的中文含义是"豆子",顾名思义JavaBean是一段Java小程序.JavaBean实际上是指一种特殊的Java类.它通经常使用来实现一些比較经常使用的简单功能.并能够非常 ...
- GridView中使用CheckBox
asp.net中checkbox是向server提交时才干触发事件 把该控件的autopostback设置为true.才干响应事件 protected void Checkbox_CheckedCh ...
- hdu5249 Tricks Device(网络流最大匹配)
分析题意可知: 1.最少须要切断多少边使吴不能找到张(题意吴仅仅能走最短路径上面的边),对从起点到终点的最短路径又一次建图,每条边的权值为1.求最大流就可以 2.在吴能够找到张的前提下,最多能够切断边 ...
- H5学习_番外篇_PHP数据库操作
1. 文件操作 1.1 打开关闭文件 fopen() resource fopen ( string filename, string mode [, bool use_include_path [, ...
- Magento-设置产品显示的条数和默认条数
在Block/Product/List/Toolbar.php里面,控制每页显示条数和默认条数的方法如下: 1.每页显示条数: protected function _getAvailableLimi ...
- 1355: [Baltic2009]Radio Transmission
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 958 Solved: 659[Submit][Status][Discuss] Description ...