polya计数
ConwayTian
一切再来,为时未晚。
毁掉你人生的,其实是你内心的平庸,是你失去追求卓越的那个瞬间。
展开
-
POJ 2409 Let it Bead / 1286 Necklace of Beads Polya 计数
题意:用k种不同的颜色给长度为n的项链染色。 题解: 1.旋转置换:一个有n个旋转置换,依次为旋转0,1,2,```n-1。对每一个旋转置换,它循环分解之后得到的循环因子个数为gcd(n,i). 2.翻转置换:分奇偶讨论。 奇数的时候 翻转轴 = (顶点+对边终点的连线),一共有n个顶点,故有n个置换,且每个置换分解之后的因子个数为n/2+1; 偶数的时候 翻转轴 = (顶点+顶点原创 2012-03-17 22:57:48 · 807 阅读 · 0 评论 -
HDU Birthday Toy 特殊限制的polya
题意:用k中颜色给n个珠子涂色,注意相邻的两个珠子不能途同样的颜色,求不等价着色数mod 10000000007。另外这道题还有另一个条件,n个小珠子一定围着一个大珠子,所以必须从k中颜色里面选择一种颜色给大珠子着色。 由于此题数据较大1 那么主对角线上的元素全为0,其余全为1。而我们要的就是矩阵求幂后主对角元素的值。····分析很简单,但是画出来比较麻烦,直接借用:http://blog原创 2012-03-20 22:08:59 · 737 阅读 · 0 评论 -
POJ 2154 Color polya计算+欧拉优化
题意:给出两个整数n和p,代表n个珠子,n种颜色,要求不同的项链数,翻转置换不考虑。结果模p. 题解: 我们知道gcd(i,n)表示了循环节的个数。例如gcd(2,6) = 2, 它的具体过程为:[1,3,5] [2,4,6] 对于任意一个循环置换,他所有循环节的长度为 n / gcd(i,n),在上面的例子中: 循环节长度 = 6 / gcd(2,6) = 3 为了方便说明,用L原创 2012-03-18 17:17:55 · 1724 阅读 · 0 评论 -
POJ 2888 Magic Bracelet 有限制的polya
题意:给定n(n 解题思路:这题和POJ2154 题目大致相同,不同的是这里多了一个限制条件,即可能两种颜色不能涂在相邻的珠子上面。对于这种情况我们可以通过矩阵连乘得到,先初始化矩阵array[i][j]为1.如果颜色a和颜色b不能涂在相邻的珠子,那么array[a][b] = array[b][a] = 0; 对于具有n/L个循环节的置换(L为每个循环节的长度)。先求出array[][]原创 2012-03-19 22:52:17 · 878 阅读 · 0 评论