![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论-群论
lab104_yifan
这个作者很懒,什么都没留下…
展开
-
UVA 12103 - Leonardo's Notebook(数论置换群)
UVA 12103 - Leonardo's Notebook 题目链接 题意:给定一个字母置换B,求是否存在A使得A^2=B 思路:任意一个长为 L 的置换的k次幂,会把自己分裂成gcd(L,k) 分, 并且每一份的长度都为 L / gcd(l,k),因此平方对于奇数长度不变,偶数则会分裂成两份长度相同的循环,因此如果B中偶数长度的循环个数不为偶数必然不存在A了 代码:原创 2014-07-18 12:26:42 · 1762 阅读 · 0 评论 -
UVA 11255 - Necklace(Ploya)
UVA 11255 - Necklace 题目链接 题意:一个链子,由三种颜色的珠子构成,现在给定三种颜色的珠子个数,求能组成多少种(旋转,翻转算同一种) 思路:利用ploya定理,然后分类讨论即可 代码: #include #include typedef long long ll; const int N = 45; int t, a, b, c, n;原创 2014-08-08 17:28:40 · 1147 阅读 · 0 评论 -
UVA 11330 - Andy's Shoes(置换分解)
UVA 11330 - Andy's Shoes 题目链接 题意:andy有很多双鞋子,每双鞋子有一个编号,现在他把鞋子左右左右放回去,可是不能保证所有鞋子左边和右边是同一编号,现在要求用最少的交换次数,使得所有鞋子左右编号相同 思路:置换的分解,固定左边的鞋子,这样右边的鞋子就可以看成是放在哪个位置,然后根据这个求出每个循环的长度,最后每个循环长度-1的总和就是答案 代码原创 2014-08-08 16:17:46 · 1562 阅读 · 0 评论 -
UVA 1016 - Silly Sort(置换分解+贪心)
UVA 1016 - Silly Sort 题目链接 题意:给定一个序列,数字都不同,每次可以交换两个数字,交换的代价为两数之和,要求出把这个序列变成递增最小代价 思路:利用置换的分解原理,可以把序列的每条循环单独考虑,对于每条循环而言,不断交换肯定每个数字至少会换到一次,再利用贪心的思想,如果每次拿循环中的最小值去置换,那么就是这个最小值会用长度-1次,而剩下的数字各一次,注意原创 2014-08-08 18:39:06 · 1593 阅读 · 0 评论 -
UVA 716 - Commedia dell' arte(三维N数码问题)
UVA 716 - Commedia dell' arte 题目链接 题意:给定一个三维的n数码游戏,要求变换为按顺序,并且最后一个位置是空格,问能否变换成功 思路:和二维的判定方法一样,因为z轴移动,等于交换N^2 - 1次,y轴移动等于交换N - 1次,x轴移动不变,逆序对的奇偶性改变方式不变。 那么n为偶数的时候,逆序对为偶数可以,为奇数不行 n为奇数时候,看空格位原创 2014-08-08 21:11:20 · 1158 阅读 · 0 评论 -
UVA 239 - Tempus et mobilius. Time and motion(置换周期)
UVA 239 - Tempus et mobilius. Time and motion 题目链接 题意:这题题意也是吊得飞起,看了老半天,大概是这样: 有一个放球的队列,和3个轨道(说白了就是栈),一个容纳5,1个12,1个12,每1分钟队列出一个小球,放入栈,如果放入5的满了,就把5的放回队列,头一个放入12的,如果12的满了,就把12的放回队列,头一个放入另一个12的栈,如果原创 2014-07-19 23:18:12 · 1029 阅读 · 0 评论 -
10601 - Cubes(Ploya)
UVA 10601 - Cubes 题目链接 题意:给定正方体12条棱的颜色,要求用这些棱能组成多少不同的正方体 思路:利用ploya定理去求解,分类讨论,正方体一共24种旋转,对应的旋转方式有4种: 1、不动 2、沿两面中点连线旋转 3、沿对顶点连线旋转 4、沿两棱中点连线旋转 简单推算出每种情况对应的循环组数,在加上组合数学去进行选择颜色求解,注意第4种情况中,原创 2014-07-18 22:13:44 · 1444 阅读 · 0 评论 -
10294 - Arif in Dhaka (First Love Part 2) (数论置换)
UVA 10294 - Arif in Dhaka (First Love Part 2) 题目链接 题意:给定n个珠子,t种颜色, 问能组成几个项链和手镯(手镯能翻转,项链不能) 思路:利用Burnside求解,推理出旋转的循环个数是gcd(i, n),翻转的分为奇偶情况考虑 代码: #include #include const int N = 30; in原创 2014-07-18 12:23:04 · 1118 阅读 · 1 评论 -
UVA 1156 - Pixel Shuffle(模拟+置换)
UVA 1156 - Pixel Shuffle 题目链接 题意:根据题目中的变换方式,给定一串变换方式,问需要执行几次才能回复原图像 思路:这题恶心的一比,先模拟求出一次变换后的对应的矩阵,然后对该矩阵求出所有循环长度,所有循环长度的公倍数就是答案 代码: #include #include const int N = 1100; int t, n, g[N]原创 2014-07-18 17:43:30 · 1532 阅读 · 0 评论 -
UVA 10733 - The Colored Cubes(Ploya)
UVA 10733 - The Colored Cubes 题目链接 题意:一个立方体,n种颜色,问能涂成多少不同立方体 思路:Ploya求解,正方体对应24种不同旋转一一计算出循环个数即可,和 UVA 10601 - Cubes这题类似 代码: #include #include unsigned long long n; int main() { w原创 2014-07-19 13:10:23 · 1237 阅读 · 0 评论 -
UVA 11077 - Find the Permutations(递推)
UVA 11077 - Find the Permutations 题目链接 题意:给定n,k求出有多少个包含元素[1-n]的序列,交换k次能得到一个[1,2,3...n]的序列 思路:递推dp[i][j]表示i个元素需要j次,那么在新加一个元素的时候,添在最后面次数不变,其余位置都是次数+1,这是可以证明的,原序列中有几个循环,需要的次数就是所有循环长度-1的和,那么对于新加一原创 2014-07-18 12:56:23 · 990 阅读 · 0 评论 -
HDU 4985 Little Pony and Permutation(置换)
HDU 4985 Little Pony and Permutation 题目链接 题意:给定一个置换,输出分解成的循环 水题,直接模拟即可 代码: #include #include #include #include using namespace std; const int N = 100005; int n, a[N], vis[N]; int原创 2014-09-01 15:01:24 · 953 阅读 · 0 评论