把b数组的所有置换群求出来,用数组记录一下每个大小所出现的次数。 然后求a的置换群,对每个置换群求能被其整除的b的置换群的大小总和(只有这些才能满足构造出一个f,且不自相矛盾),然后把它们全都乘起来就是答案。 ...
分类:
其他好文 时间:
2017-07-25 22:43:08
阅读次数:
184
LINK 题意:给出1~n数字的排列,求变为递增有序的最小交换次数 思路:水题。数据给的很小怎么搞都可以。由于坐标和数字都是1~n,所以我使用置换群求循环节个数和长度的方法。 ...
分类:
其他好文 时间:
2017-07-20 19:52:42
阅读次数:
144
Polya定理:设G={π1,π2,π3........πn}是X={a1,a2,a3.......an}上一个置换群,用m中颜色对X中的元素进行涂色,那么不同的涂色方案数为:1/|G|*(mC(π1)+mC(π2)+mC(π3)+...+mC(πk)). 其中C(πk)为置换πk的循环节的个数。 ...
分类:
其他好文 时间:
2017-07-05 16:40:02
阅读次数:
132
题目链接:poj 1721 CARDS 题意: 看了半天才看懂,就是一次置换为b[i]=a[a[i]],a[i]=b[i]。 现在已经知道了置换了多少次和当前的序列,问你最原来的序列为 题解: 将这个置换的循环次数ans找出来,再做ans-s次就行了。 1 #include<cstdio> 2 #i ...
分类:
其他好文 时间:
2017-06-24 22:46:31
阅读次数:
205
题目链接:poj 2369 Permutations 题意: 给你一个置换序列,问你循环周期是多少。 题解: 找到每个子循环周期,总体的循环周期就是这些子循环周期的最小公倍数。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> ...
分类:
其他好文 时间:
2017-06-24 21:53:39
阅读次数:
173
题目链接:poj 3590 The shuffle Problem 题意: 给你一个数n,让你找一个字典序最小的置换序列,使得变换整个周期最大。 题解: 由于置换群的性质,我们可以将n拆分成m个数,使得这m个数的和为n,并且这m个数的最小公倍数最大。 dp可以求出将n拆分后的最大的最小公倍数。 然后 ...
分类:
其他好文 时间:
2017-06-24 20:59:06
阅读次数:
362
题目链接:hdu 3430 Shuffling 题意: 给出n张牌,标号为1-n,然后给出两个序列,序列1表示序列1,2,3,4……,n洗一次牌后到达的. 序列2表示目标序列,问初始序列按序列1的洗牌方式洗几次能到达序列2的情况,如果不能到达输出-1. 题解: 在初始序列和序列1的变换中找出1能变到 ...
分类:
其他好文 时间:
2017-06-23 00:48:35
阅读次数:
223
题目链接:hdu 1802 Black and white painting 题意: 有一个n*n的格子,然后用c种颜色去涂,问你有多少种方案。 能旋转,反射的算一种方案。 题解: polya定理的经典运用 旋转只有 0,90,180,270度三种旋法。旋0度,则置换的轮换数为n*n旋90度,n为偶 ...
分类:
其他好文 时间:
2017-06-22 18:40:51
阅读次数:
149
题目链接:hdu 1439 Cipher 题意: 给你一个n元的key,让你将一个字符串置换k次。 题解: 暴力将每个数的循环数找到,然后k%后对应填字符就行了。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 ...
分类:
其他好文 时间:
2017-06-22 13:22:10
阅读次数:
141
尝试写一些关于群的东西,可能会大量引用百科,相关论文之类的......呵 ...
分类:
其他好文 时间:
2017-06-16 20:18:46
阅读次数:
219