题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you can deduce from the company name, their business is beads. Their PR department found out that customers are interested in buying colored bracelets. However…
在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用一种,11,12是同一种,13,14,15,16是同一种,也就是只有6种本质上不同的染色.小规模我们可以列举所有方案然后再选择,大规模的时候是很难列举所有方案的.下面,我们说明用Burnside引理和polay计数来解决这类问题. 一.置换群G:即指所有的置换.上面的例子中置换只有4种,即旋转0.9…
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色? 其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转. Burnside引理的证明 那么,在解决这个问题之间,我们首先要定义和证明一些东西: 在集合\(X\)的置换群…
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Burnside引理和Polya定理.然后提供一些自己做过的和上述定理相关的题目和解题报告. Burnside引理是为了解决m种颜色给n个对象染色的计数问题. [例题1]…
#Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1&2&i \ldots n \\ a_{1} & a_{2}&a_{i} \ldots a_{n} \end{pmatrix}\] 比如,把正方体绕中心旋转90度,可以看做四个顶点的一个置换 (1)置换可以构成换:对于元素连一条有向边,连到置换中映射的元素,会构成n个环,(循环)…
公式: Burnside引理: 1/|G|*(C(π1)+C(π2)+C(π3)+.....+C(πn)): C(π):指不同置换下的等价类数.例如π=(123)(3)(45)(6)(7),X={1,2,3,4,5,6,7};那么C(π)={3,6,7}共3个等价类. Polya定理: 1/|G|*(mC(π1)+mC(π2)+mC(π3)+...+mC(πk)). 设G={π1,π2,π3........πn}是X={a1,a2,a3.......an}上一个置换群, 其中C(πk)为置换πk…
                                                                  Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5397   Accepted: 3609 Description "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey…
题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于Burnside引理,G为所有置换集合,|G|为所有置换个数,gi为第i种置换,D(gi)为在第i种置换下保持不动的元素个数. 对于Polay定理,G为所有置换集合,|G|为所有置换个数,gi为第i种置换,n为颜色的种类,c(gi)为第i种置换的循环节个数. (2)对于Polay,一般解题步骤:确定…
题目链接 https://www.luogu.org/problem/P5564 题解 这题最重要的一步是读明白题. 为了方便起见下面设环长可以是\(1\), 最后统计答案时去掉即可. 实际上就相当于如果只有树没有环,答案就是卡特兰数第\((n-1)\)项.令\(C(x)\)为Catalan数生成函数,\(T(x)\)为这种树的生成函数,则\(T(x)=xC(x)\). 然后环的话可以考虑Burnside引理,首先枚举环长,枚举置换,易得答案为\(\sum^n_{k=1}\frac{1}{k}\…
题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=1488 题解 Burnside引理经典题. 首先考虑一个\(O(n!\times poly(n))\)暴力: 枚举点的置换,然后计算在置换下保持不变的图的个数. 把置换拆成若干个轮换. (1) 考虑轮换内部: 假设一轮换为\((a_1\ a_2\ ...\ a_n)\), 那么\((a_…
题目链接:http://www.spoj.com/problems/TRANSP2/ 题意: 思路:不妨设a=1,b=2, 我们发现(001,010,100)组成一个置换,(011,110,101)组成一个置换.那么对于同一个置换中元素,设置换大小为x,则需要x-1次交换.因此,我们若找到循环节的个数K,那么答案即为2^(a+b)-K. a+b个珠子的项链,每个珠子可以用两种颜色涂色,通过每次左移a个珠子得到的相同的视为相同.求不同项链的个数.问题就转化成这个.设g=Gcd(a,a+b),则置换…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4633 题意:有下面一个魔方.有K种颜色.可以为顶点.边.面(每个面有9个小面)染色.两种染色算作一种当通过旋转(是旋转整个魔方)变得一样.求有多少种不同的染色? 思路:这个跟普通的一样..找到置换,这个有四种,找到每种置换下的循环节.. i64 Pow(i64 a,i64 b){    i64 ans=1;    while(b)    {        if(b&1) ans=ans*a%mod;…
题意 题目链接 分析 sπo yyb 代码 #include<bits/stdc++.h> using namespace std; typedef long long LL; #define go(u) for(int i = head[u], v = e[i].to; i; i=e[i].lst, v=e[i].to) #define rep(i, a, b) for(int i = a; i <= b; ++i) #define pb push_back #define re(x)…
考虑\(Burside\)引理,设\(f(x)\)表示置换拆成循环的个数为\(x\)时的答案,那么最终的结果就是\(\displaystyle \frac{\sum_{i=1}^n f(gcd(i,n))}{n}\),化简之后就是\(\displaystyle \frac{\sum_{d|n}f(d)\varphi(\frac{n}{d})}{n}\). 考虑如何计算不动点的数量,为了方便首先把\(n=m\)的情况直接处理掉,那么现在问题变成了,把环上的点编号,所有模\(d\)相同的点都必须是同…
题目链接 https://www.luogu.org/problem/P4708 题解 看上去Luogu P4706-4709是Sdchr神仙出的一场比赛,一道水题和三道很有趣的题终于全过了纪念QAQ(然而后三道都看了题解) 以及为啥这题AC代码几乎全是打表.. 前置题目: BZOJ1488 求\(n\)个点无标号无向图个数.(欢迎阅读 https://www.cnblogs.com/suncongbo/p/11295453.html ) 没做过的建议先去做一下那题. 这道题依然是枚举拆分数,然…
题目大意:长度为n的项链,要染m种颜色,可以通过旋转或翻转到达的状态视为同一种,问有多少种染色方案. 学了一波polya定理,发现很好理解啊,其实就是burnside定理的扩展. burnside定理告诉我们不同染色方案数是每种置换的不变元素个数除以置换总数,而polya定理就是在这个基础上用公式计算出置换的不变元素个数.而且polya定理非常好理解,我们要让元素不变,所以对于每个循环节我们要染一样的颜色,有m种颜色,c(pk)个循环节,于是每种置换的不变元素个数就是m^c(pk). 对于这道题…
Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6443   Accepted: 4315 Description "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you can deduce from the company name, their business is b…
1116: Let it Bead  Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByteTotal Submit: 7            Accepted:4 Description "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you can deduce from the compa…
Day0 坐飞机来北京,地铁上接到电话,以为是诈骗电话马上就挂了,然后看了一下是北京的电话,赶脚有点不对...打回去居然是报到处老师的电话..走了几个小时,到勺园和其他学校的神犇合住.TAT,感觉第二天要爆零的感觉.. 看一会直播,再看一看模板看到没电就睡觉了,结果睡不着.. Day1上午 我TM要去报道,发现居然TM找不到教室,跟个迷宫似的,然后去听院系介绍还迟到了,似乎我报道的时候厦一的还没从西安回来? T1:感觉是道很麻烦的模拟搜索题,就没有打.. T2:我一看,这TM不是FFT模板题吗,…
Magic Bracelet Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 3731   Accepted: 1227 Description Ginny’s birthday is coming soon. Harry Potter is preparing a birthday present for his new girlfriend. The present is a magic bracelet which…
题意:有n张牌,有R+G+B=n的3种颜色及其数量,要求用这三种颜色去染n张牌.n张牌有m中洗牌方式,问在不同洗牌方式下本质相同的染色方案数. 解法:这道题非常有意思,题解参考Hzwer学长的.我这里再总结一下: 看到本质相同的染色方案我们很容易会想到Burnside引理和Polya定理,但是这题不能用Polya定理,为什么?因为一般的Ployd染色的颜色个数是没有限制的,于是当循环节为l颜色为c时候,方式数就是c^l(就是因为一个循环方案要相同所以染的颜色也要相同).但是此题颜色个数有限制,不…
Burnside引理: 参考自 某大佬对Burnside引理和Polya定理的讲解 相关概念 群:在数学中,群表示一个拥有满足封闭性.满足结合律.有单位元.有逆元的二元运算的代数结构. 置换群:由有限集合各元素的置换所构成的群. 一个置换的形式类似于 然后是Burnside引理: (1)玄学描述 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数. 通过上述置换的变换操作后可以相等的元素属…
扯回正题,此题需要知道的是置换群的概念,这点在刘汝佳的书中写的比较详细,此处不多做赘述.此处多说一句的是第二种手镯的情况.在下图中“左图顺时针转1个位置”和“右图顺时针旋转5个位置”是相同的,所以在最终结果处需要(ans1+ans2)/2. 可以看刘汝佳白书,来看,这道题,burnside引理和polya定理的经典应用. #include<cstdio> #include<cstring> #include<cmath> #include<iostream>…
参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交换律. 置换的循环分解:即将置换看成一张有向图,分解成若干循环.循环的数量称为循环节. 以置换集合来描述等价关系.如果存在一个置换将一个方案映射到另一个方案,则这两个方案等价.置换集合应当构成置换群. 不动点:方案s经过置换f不变,则s为f的不动点. Burnside引理:等价类数量=所有置换的不动点数量的平…
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数.通过上述置换的变换操作后可以相等的元素属于同一个等价类 那么等价类的个数就等于: 然后理解一下公式 一正方形分成4格,2着色,有多少种方案?其中,经过转动相同的图象算同一方案. 关于转动,一共有四种置换方法,也就是|G|=4 不动(360度):a1=(1)(2)…
参考了神仙gzy的博客 置换:把一个排列变成另外一个排列,简单来说就是一一映射. 置换群:置换的集合. 置换即给定一个排列\({f_1,f_2,...,f_n}\),若其作用在一个排列上,则这个排列置换后的第\(i\)个位置上的数变为置换前的第\(f_i\)个位置上的数,实质是一个从一个排列到另一排列的一一映射. 置换之间可以进行乘法 置换可以分解成若干循环的乘积 以上两点可参考gzy的博客,其中第二点是等价类计数中常用的方法,在我有关排列计数的文章中会提到 Burnside引理 设G为置换集合…
import UIKit /* class Person { let name: String //强引用 init(name: String) { self.name = name print("\(name) is being initialized") } //引用计数销毁时 deinit { print("\(name) is being deinitialized") } } */ class Person { let name: String init(…
感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运算"$*$",并满足 (1).封闭性:$\forall a, b \in G, \exists c \in G, a * b = c$ (2).结合律:$\forall a, b, c \in G, (a * b) * c = a * (b * c)$ (3).单位元:$\exists e…
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序列循环同构,那么我们称这两个序列等价. 求两两不等价的序列个数. Burnside引理 假设有若干个置换 $P_1,P_2,\cdots$ ,设由这些置换生成的置换群为 $Q$ .如果序列 A 可以通过一个 $Q$ 中的置换变成序列 B,那么我们认为 A 和 B 等价. 对于一个置换 $P$ ,如果…
// Swift 使用 自动引用计数 (ARC) 机制来跟踪和管理你的应用程序的内存, 通常情况下, Swift 内存管理机制会一直起作用, 你无须自己来考虑内存的管理, ARC 会在类的实例不再被使用时,自动释放其占用的内存 // 然而在少数情况下, 为了能帮助你管理内存, ARC 需要更多的能带吗之间关系的信息, // 注意 : 引用计数仅仅应用于 类的实例, 结构体 和 枚举类型是值类型, 不是引用类型, 也不是通过引用的方式存储和传递 // 自动引用计数的工作机制 // 当你每次创建一个…