题目链接 BZOJ1004 题解 burnside定理 在\(m\)个置换下本质不同的染色方案数,等于每种置换下不变的方案数的平均数 记\(L\)为本质不同的染色方案数,\(m\)为置换数,\(f(i)\)为置换\(i\)下不变的方案数,那么 \[L = \frac{1}{m}\sum\limits_{i = 1}^{m} f(i)\] 在一个置换下一个方案不变,当且仅当该置换的任意一个循环节内部颜色相同 记循环节个数为\(c_i\),色数为\(k\)且不限使用,那么该置换下不变的方案数为 \[…
看这道题时当时觉得懵逼...这玩意完全看不懂啊...什么burnside...难受... 于是去看了点视频和资料,大概懂了置换群和burnside定理,亦步亦趋的懂了别人的代码,然后慢慢的打了出来...高兴的一匹. 回归正题啊,这个题如果大家不懂置换群的概念...是很难看的懂的,M种洗牌,代表了M种置换,加上自己本身一种,构成看M+1种置换,如果一种可以通过任意的洗牌法洗成另一种的看成一类(这就是等价类的定义),问有多少种染色方法??? 这道题很明显嘛,就是算等价类的数目,这个需要用到burns…
我想了想,发现可以证明burnside定理. 置换:n个元素1,2,-,n之间的一个置换表示1被1到n中的某个数a1取代,2被1到n中的某个数a2取代,直到n被1到n中的某个数an取代,且a1,a2,-,an互不相同. 置换群:置换群的元素是置换,运算是置换的连接.例如: 可以验证置换群满足群的四个条件. 重点是这个:│Ek│·│Zk│=│G│    k=1-n 这个我不会证明,但是很好理解:每个不动点都可以找到一个对应的置换,差不多就这个意思. 该公式的一个很重要的研究对象是群的元素个数,有很…
三道burnside入门题: Burnside定理主要理解置换群置换后每种不动点的个数,然后n种不动点的染色数总和/n为answer. 对于旋转,旋转i个时不动点为gcd(n,i). 传送门:poj 2409 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <queue> #include <cstdlib> #de…
传送门:Gift 题意:由n(n<=1e9)个珍珠构成的项链,珍珠包含幸运数字(有且仅由4或7组成),取区间[L,R]内的数字,相邻的数字不能相同,且旋转得到的相同的数列为一种,为最终能构成多少种项链. 分析:这是我做过的最为综合的一道题目(太渣了),首先数位dp筛选出区间[L,R]内的幸运数字总数,dp[pos]表示非限制条件下还有pos位含有的幸运数字个数,然后记忆化搜索一下,随便乱搞的(直接dfs不知会不会超时,本人做法900+ms险过,应该直接dfs会超时),再不考虑旋转相同的情况,可以…
Burnside & Pólya (详细内容请参阅<组合数学>或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎留言) Burnside: 我们要证明的是:$$N(G,C)=\frac{1}{|G|} \sum_{f \in G}|C(f)|$$ 难点一:非等价着色数=等价类数目($N(G,C)$),这其实是从等价类的定义来的...因为一个等价类表示着一种与众不同的染色方案,当然有多少个等价类就有多少种非等价染色方案啦…
题目大意:长度为n的项链,要染m种颜色,可以通过旋转或翻转到达的状态视为同一种,问有多少种染色方案. 学了一波polya定理,发现很好理解啊,其实就是burnside定理的扩展. burnside定理告诉我们不同染色方案数是每种置换的不变元素个数除以置换总数,而polya定理就是在这个基础上用公式计算出置换的不变元素个数.而且polya定理非常好理解,我们要让元素不变,所以对于每个循环节我们要染一样的颜色,有m种颜色,c(pk)个循环节,于是每种置换的不变元素个数就是m^c(pk). 对于这道题…
置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|=2^4\). 对于\(N\)上的所有置换,它们组成的群称为置换群,记为\(G\).\(G\)中任意两个置换的积仍在\(G\)中. Burnside引理 又称轨道计数定理.Burnside计数定理.Cauchy-Frobenius定理.Pólya-Burnside引理. 定理描述为:\(等价类数量=\…
Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种.Sun发现这个问题有点难度,决…
题目传送门 思路:首先是Burnside引理,要先学会这个博客. Burnside引理我们总结一下,就是 每种置换下不动点的数量之和除以置换的总数,得到染色方案的数量.        这道题,显然每种洗牌方式都是一种置换,我们先数出每种置换的不动点.什么叫不动点,就是在这个置换下不停的变化后状态不变的染色方案.容易想出每个置换都有一个循环节,每张牌在某种洗牌方式下的位置是循环的,那要使得这个成为一个不动点,就需要使得同一循环节上的牌的颜色相同.那么这个问题就转化成了一个三维背包问题了. 背包的转…
题意:有n张牌,有R+G+B=n的3种颜色及其数量,要求用这三种颜色去染n张牌.n张牌有m中洗牌方式,问在不同洗牌方式下本质相同的染色方案数. 解法:这道题非常有意思,题解参考Hzwer学长的.我这里再总结一下: 看到本质相同的染色方案我们很容易会想到Burnside引理和Polya定理,但是这题不能用Polya定理,为什么?因为一般的Ployd染色的颜色个数是没有限制的,于是当循环节为l颜色为c时候,方式数就是c^l(就是因为一个循环方案要相同所以染的颜色也要相同).但是此题颜色个数有限制,不…
题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i,j,k) = dp(x,i-cntx,j,k)+dp(x,i,j-cntx,k)+dp(x,i,j,k-cntx)表示前x个置换红蓝绿个用了i,j,k次,cntx表示第x个置换的循环数. 然后最后乘(M+1)的乘法逆元就OK了. -----------------------------------…
题目链接:http://poj.org/problem?id=2409 题意: 有一串n个珠子穿起来的项链,你有k种颜色来给每一个珠子染色. 问你染色后有多少种不同的项链. 注:“不同”的概念是指无论怎样旋转或翻转项链,都与之前的不同. 题解: 本题用到了置换的相关知识: (1)Burnside引理: 等价类数目 = 所有C(f)的平均值 (C(f)为置换f的不动点数目) (2)置换f可以分解成m(f)个循环的乘积,假设涂k种颜色: C(f) = k^m(f) (3)Polya定理:(综上) 等…
1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Status] Description 小 春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答 案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最…
https://www.lydsy.com/JudgeOnline/problem.php?id=1004 输入数据保证任意多次洗牌都可用这 m种洗牌法中的一种代替,且对每种洗牌法,都存在一种洗牌法使得能回到原状态.(保证置换的完备性) 要考虑1,2,3...n这个置换,然后算出每种置换的方案数,除上总置换数m+1,就是答案,因为有取模,所以需要算逆元,然后对与一种置换来说总的情况数可以用dp来计算,因为每一个置换群只能涂成一种颜色,然后我们需要满足涂的颜色种数满足条件,dp[i][j][k]维…
题目链接:http://vjudge.net/problem/viewProblem.action?id=11117 就是利用每种等价情形算出置换节之后算组合数 #include <stdio.h> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath> using namespace std; #define lson o<<1 #def…
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #define INF 1e9+7 using namespace std; ; ; int n,m; int s[MAXN]; struct EDGE { int v,next,w; }edge[MAXN]; int head[MAXN],e; int q[MAXN],vis[MAXN],d[MAXN];…
以后还是这样 25道题一起发 看着爽 noip失利之后发粪涂墙 刷了一波bzoj 题解: bzoj1000 A+B问题 这题不同的人有不同的写法,我写了个线段树套Treap,应该还是挺简单的 但是看别的大神的代码跑的飞快就粘过来吧   这题竟然不用树套树,太强了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #incl…
置换群.Burnside引理与等价类计数问题 标签: 置换群 Burnside引理 置换 说说我对置换的理解,其实就是把一个排列变成另外一个排列.简单来说就是一一映射.而置换群就是置换的集合. 比如\[ \left(\begin{array}1 1 & 2 & 3 & 4 & 5 \\ 5 & 3 & 4 & 2 & 1 \end{array}\right) \]是一个置换.也可以把置换看做定义域和值域都为{1,2,......,n}的函数,…
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色? 其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转. Burnside引理的证明 那么,在解决这个问题之间,我们首先要定义和证明一些东西: 在集合\(X\)的置换群…
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数.通过上述置换的变换操作后可以相等的元素属于同一个等价类 那么等价类的个数就等于: 然后理解一下公式 一正方形分成4格,2着色,有多少种方案?其中,经过转动相同的图象算同一方案. 关于转动,一共有四种置换方法,也就是|G|=4 不动(360度):a1=(1)(2)…
转自:http://endlesscount.blog.163.com/blog/static/82119787201221324524202/ Polya定理 首先记Sn为有前n个正整数组成的集合,G为Sn的置换群,C为Sn的着色集.那么我们等于是要求C中有多少种着色方案是不等价的.定义两种着色等价的概念:如果对于在C中的两种着色c1.c2,存在置换f使得f*c1=c2,那么c1和c2就是等价的.要想求不等价着色的个数,我们要先证明一个定理,即:         Burnside定理:设G(c…
http://www.cnblogs.com/wenruo/p/5304698.html 先看 Polya定理,Burnside引理回忆一下基础知识.总结的很棒. 一个置换就是集合到自身的一个双射,置换群就是元素为置换的群. 再看 Polya入门  涨涨姿势. Burnside定理,在每一种置换群也就是等价群中的数量和除以置换群的数量,即非等价的着色数等于在置换群中的置换作用下保持不变的着色平均数. Polya定理:设 是n个对象的一个置换群, 用m种颜色染图这n个对象,则不同的染色方案数为:…
参考了http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove 的模板 对于每一种染色,都有一个等价群,例如旋转,翻转等.我们将每一种变换转换成一个置换群,通过置换群得到的都是等价的染色方案 最终我们要求的是非等价的染色方案数. 在Burnside定理中给出,在每一种置换群也就是等价群中的数量和除以置换群的数量,即非等价的着色数等于在置换群中的置换作用下保持不变的着色平均数. 我们以POJ 2409 Let i…
昨天看了一下午<组合数学>最后一章然后晚上去看别人的blog发现怎么都不一样,我一定是学了假的polya 其实是一样的,只不过<组合数学>没有太多的牵扯群论.于是又从群论角度学了一遍. 现在来总结,我主要从书上的角度来,群论的知识见$TA$爷的总结 置换 设$X$为有限集${1,2,...,n}$,$X$的置换$i_1,i_2,...,i_n$是函数:$f:X \rightarrow X$$f$是满射的$X$所有置换的集合$S_n$ 函数的$compositon$运算: $(g \…
Description 小春现在很清闲, 面对书桌上的 \(N\) 张牌, 他决定给每张染色, 目前小春只有 \(3\) 种颜色: 红色, 蓝色, 绿色. 他询问 Sun 有 多少种染色方案, Sun 很快就给出了答案. 进一步, 小春要求染出 \(Sr\) 张红色, \(Sb\) 张蓝色, \(Sg\) 张绿色. 他又询问有多少种方 案, Sun 想了一下, 又给出了正确答案. 最后小春发明了 \(M\) 种不同的洗牌法, 这里他又问 Sun 有多少种不同的染色方案. 两种染色方法相同当且仅当…
第一次学习置换群这个东西. 这题需要利用Burnside定理. 即我们求出循环节为一(转完不变)的个数的平均数也就是等价类的个数. 定义:设G={a1,a2,…ag}是目标集[1,n]上的置换群.每个置换都写成不相交循环的乘积. c1(ak) 是在置换ak 的作用下不动点的个数,也就是长度为1的循环的个数(其实就是被置换ak 置换过后位置不变的元素个数).通过上述置换的变换操作后可以相等的元素属于同一个等价类.若G将[1,n]划分成L个等价类,则: 等价类个数为: 证明:http://blog.…
[题意分析] 给N个元素染色,可以在定置换群的作用下互相转化的染色方案算相同的,问本质不同的染色方案数. [解题思路] 引理:Burnside定理 设集合S=[1,n]∩N,记等价类数为L,给定S上的置换群G. Zk (k不动置换类):若k是S中某个元素,G中使k保持不变的置换的全体,记以Zk,叫做G中使k保持不动的置换类,简称k不动置换类. C(π)(置换n的不动点全集):对于一个置换π∈G,及a∈X,若π(a)=a,则称a为π的不动点.π的不动点的全体记为C(π). 有定理:L=1/|G|*…
笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义的群.它所需要满足的性质是: 结合律:对于任意\(a,b,c\in G,a·b·c=a·(b·c).\) 封闭性:对于任意\(a,b\in G,a·b\in G.\) 单位元:存在\(e\in G,a·e=a.\) 逆元:\(\forall a\in G,\exists a'\in G,a·a'=a…
群 群的定义 我们定义,对于一个集合 \(G\) 以及二元运算 \(\times\),如果满足以下四种性质,那我们就称 \((G,\times)\) 为一个群. 1. 封闭性 对于 \(a\in G,b\in G\),那么有 \(a\times b\in G\) 2. 结合律 \(a\times (b\times c)=(a\times b)\times c\) 似乎这个东西没有什么用蛤? 3. 单位元 存在一个元素 \(e\in G\),使得任意 \(a\in G\) 有 \(a\times…