Polya 定理相关题目】的更多相关文章

参考知识链接   关于枚举旋转置换:   前两题都是枚举了 n 种旋转, 但这个可以优化到\(O(\sqrt{n})\) (这个其实是基本操作). 考虑到每个循环节的长度都是 n 的因数, 所以可以枚举 n 的因数, 再乘以这个因数的贡献, 即被计算了几次, 对于一个数 a, 如果gcd(a, n) == d, 那么 a 就对 d 产生了 1 次贡献, 而一共有\(\varphi{(n/d)}\)个这样的数.   POJ 2409 题意: 有一串 s 个珠子的项链, 每个珠子的颜色有 c 种,…
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Burnside引理和Polya定理.然后提供一些自己做过的和上述定理相关的题目和解题报告. Burnside引理是为了解决m种颜色给n个对象染色的计数问题. [例题1]…
题目链接: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定理:(综上) 等…
对Polya定理的个人认识     我们先来看一道经典题目:     He's Circles(SGU 294)         有一个长度为N的环,上面写着“X”和“E”,问本质不同的环有多少个(不能旋转重复就称之为本质不同) 输入样例:4 输出样例:6 那么要怎么办呢?暴力显然暴不出来…… 我们可以考虑使用置换群. 我们有两种算法: ①Burnside引理: 答案直接为1/|G|*(D(a1)+D(a2)+D(a3)+……+D(as)) 其中D(ak)为在进行置换群置换操作ak下不变的元素的…
点我看题目 题意 :给你c种颜色的n个珠子,问你可以组成多少种形式. 思路 :polya定理的应用,与1286差不多一样,代码一改就可以交....POJ 1286题解 #include <stdio.h> #include <iostream> #include <string.h> #include <math.h> #include <algorithm> using namespace std; int gcd(int a,int b) {…
点我看题目 题意 :给你3个颜色的n个珠子,能组成多少不同形式的项链. 思路 :这个题分类就是polya定理,这个定理看起来真的是很麻烦啊T_T.......看了有个人写的不错: Polya定理: (1)设G是p个对象的一个置换群,用k种颜色突然这p个对象,若一种染色方案在群G的作用下变为另一种方案,则这 两个方案当作是同一种方案,这样的不同染色方案数为: : (2)置换及循环节数的计算方法:对于有n个位置的手镯,有n种旋转置换和n种翻转置换.对于旋转置换: c(fi) = gcd(n,i) …
描述 "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,…
polya的精髓就在与对循环节的寻找,其中常遇到的问题就是项链染色类问题. 当项链旋转时有n种置换,循环节的个数分别是gcd(n, i); 当项链翻转时有n种置换,其中当项链珠子数位奇数时,循环节的个数是n/2+1 当项链珠子数是偶数个时,当翻转线穿过珠子时,循环节个数为n/2+1,否则为n/2; 1.poj 1286: 题目大意:用三种颜色对珠子数不超过24的项链染色,问有多少种染色情况. 这道题是最基本的polya定理考察,只要带入公式即可 #include<iostream> #incl…
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4633 典型的Polya定理: 思路:根据Burnside引理,等价类个数等于所有的置换群中的不动点的个数的平均值,根据Polya定理,不动点的个数等于Km(f),m(f)为置换f的循环节数,因此一次枚举魔方的24中置换,人肉数循环节数即可,注意细节,别数错了. 1.静止不动,(顶点8个循环,边12个循环,面54个循环) 2.通过两个对立的顶点,分别旋转120,240,有4组顶点,(点4个循环,边4个…
题目大意 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b图一一对应. 题解 这个题是学习了Polya定理和群论以后的练手题,但是推了好久并没有推出来....真的是太难辣... 首先我先说一下我错误的想法: 很容易就把这个题转化成了给\(K_n\)的完全图上的边进行二着色的问题,然后,由于在组合数学课程中经常接触到多边形着色,所以我就把这个题错误的转化成了…
感觉这两个东西好鬼畜= = ,考场上出了肯定不会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…
题目描述 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种.Sun发现这个问题有点难度,决定交给你,答案…
题目描述 给你一个字符串\(s\),问你有多少个串是最小表示串且字典序\(\leq s\) \(|s|\leq 1000\) 题解 先把\(s\)变成比\(s\)小的最大的最小表示串.方法是从后枚举每一个字符,如果这个字符不是'a',就把这个字符变成这个字符的前驱,并把后面所有字符字符变成'z',然后判断是不是最小表示串. 可以用kmp去判断.如果\(\exists i,s_{i+1}>s_{fail_i+1}\),那么这个串就不是最小表示串. 运用polya定理,把问题转化为求有多少个长度为\…
思路 polya定理的模板题,但是还要加一些优化 题目的答案就是 \[ \frac{\sum_{i=1}^n n^{gcd(i,n)}}{n} \] 考虑上方的式子怎么求 因为\(gcd(i,n)\)肯定有很多重复,枚举\(gcd(i,n)\),因为\(gcd(i,n)\)是\(n\)的约数,所以枚举约数 \[ \begin{align}&\sum_{d|n}^nn^d\sum_{k=1}^n[gcd(n,k)=d]\\=&\sum_{d|n}^nn^d\sum_{k=1}^{\lfloo…
题意:给定 n 和 m 表示要制作一个项链和手镯,项链和手镯的区别就是手镯旋转和翻转都是相同的,而项链旋转都是相同的,而翻转是不同的,问你使用 n 个珠子和 m 种颜色可以制作多少种项链和手镯. 析:一个很明显的 Polya 定理,先考虑旋转,如果逆时针旋转 i 个珠子,那么 0 i 2i 3i ... 是一个循环,这样的话就有 gcd(i, n) 个循环. 对于翻转,要考虑是奇偶,如果是奇数,肯定是要过一个珠子的,所以就一共有 n 个相同的,对于每一个会形成 n/2 个长度为 2 个的循环,和…
题目描述 $T$ 组询问,用 $n$ 种颜色去染 $n$ 个点的环,旋转后相同视为同构.求不同构的环的个数模 $p$ 的结果. $T\le 3500,n\le 10^9,p\le 30000$ . 题解 Polya定理+欧拉函数 根据 poj2409 中得到的结论,答案为: $\frac{\sum\limits_{i=1}^nn^{\gcd(i,n)}}n=\sum\limits_{i=1}^nn^{\gcd(i,n)-1}$ 由于 $n$ 有 $10^9$ 之大,因此考虑优化这个式子. 枚举…
题目描述 用 $c$ 种颜色去染 $r$ 个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $r·c\le 32$ . 题解 Polya定理 Burnside引理:一个置换群的等价类数目等于这个置换群中所有置换的不动点数目的平均值:Polya定理:设有限群G有 $m$ 个置换,第 $i$ 个置换有 $a_i$ 个循环,现在要将所有的点染成 $c$ 种颜色,那么染色后群G的等价类数目为:$L=\frac{c^{a_1}+c^{a_2}+…+c^{a_m}}m$…
Necklace of Beads Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 630    Accepted Submission(s): 232 Problem Description Beads of red, blue or green colors are connected together into a circular…
题目大意:给一个$n$个点的环染色,有$n$中颜色,问有多少种涂色方案是的旋转后本质不同 题解:$burnside$引理:$ans=\dfrac1{|G|}\sum\limits_{g\in G}A_g$ 对于环,有$Polya$定理:$ans=\dfrac1{|G|}\sum\limits_{g\in G}m^{c(g)}$($m$为颜色数,在这道题中$m=n$,$c(g)$为置换$g$中循环个数) 因为是循环相同,所以$|G|=n$,当$g=\left(\begin{smallmatrix}…
题目大意:长度为n的项链,要染m种颜色,可以通过旋转或翻转到达的状态视为同一种,问有多少种染色方案. 学了一波polya定理,发现很好理解啊,其实就是burnside定理的扩展. burnside定理告诉我们不同染色方案数是每种置换的不变元素个数除以置换总数,而polya定理就是在这个基础上用公式计算出置换的不变元素个数.而且polya定理非常好理解,我们要让元素不变,所以对于每个循环节我们要染一样的颜色,有m种颜色,c(pk)个循环节,于是每种置换的不变元素个数就是m^c(pk). 对于这道题…
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. 置换是什么呢?  置换的广义概念在不同语境下有不同的形式定义: 在集合论中,一个集合的置换是从该集合映至自身的双射:在有限集的情况,便与上述定义一致. 在组合数学中,置换一词的传统意义是一个有序序列,其中元素不重复,但可能有阙漏.例如1,2,4,3可以称为1,2,3,4,5,6的一个置换,但是其中…
Polya定理 L=1/|G|*(m^c(p1)+m^c(p2)+...+m^c(pk)) G为置换群大小 m为颜色数量 c(pi)表示第i个置换的循环节数 如置换(123)(45)(6)其循环节数为3 ------------------------------------------------------------------------------------------- POJ1286&POJ2409 都是简单的处理串珠子的问题. 题目中隐藏着3种不同的置换类别. 1.旋转 注意不…
题目 Beads of N colors are connected together into a circular necklace of N beads (N<=1000000000). Your job is to calculate how many different kinds of the necklace can be produced. You should know that the necklace might not use up all the N colors, a…
题目:http://poj.org/problem?id=1286 真·Polya定理模板题: 写完以后感觉理解更深刻了呢. 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; int n; ll ans; ll pw(ll a,int b) { ll ret=; ,a*=a) )ret*=a; return ret;…
题目:http://poj.org/problem?id=2154 今天学了个高端的东西,Polya定理... 此题就是模板,然而还是写了好久好久... 具体看这个博客吧:https://blog.csdn.net/wsniyufang/article/details/6671122 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; int X,n,p,p…
分析 三倍经验题,本文以[BZOJ1478][SGU282]Isomorphism为例展开叙述,主体思路与另外两题大(wan)致(quan)相(yi)同(zhi). 这可能是博主目前写过最长也是最认真的题解了. 题目中规定"若两个已染色的图,其中一个图可以通过结点重新编号而与另一个图完全相同, 就称这两个染色方案相同",说明这个置换群是定义在点上的,而染色方案是定义在边上的.把边的染色方案转化为点的染色方案不太现实,所以说我们可以考虑如何将点的置换转化为边的置换. 一个显然的结论是点的…
提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ \circ $ 的合称,其满足以下性质. 封闭性 对于 \(\forall a,b \in S\) , \(\exist c \in S\) 使得 \(c = a \circ b\) 结合律 对于 \(\forall a,b,c \in S\) , \(a \circ (b \circ c) = (…
本文是一个笨比学习组合数学的学习笔记,因为是笨比,所以写的应该算是很通俗易懂了. 首先,我们考虑这么一个问题:你有无穷多的\(p\)种颜色的珠子,现在你想要的把他们中的\(n\)个以圆形的形状等间距的黏在一个可以旋转的圆盘上,求方案数. 然后,该问题的答案是 \(\frac{1}{n}\Sigma_{d|n}\phi(\frac{n}{d})p^d\) ,之中\(\phi()\)表示欧拉函数,下面解释一下为什么会出现这样一个数论函数. 首先,我们来复习一下polya定理:设一个序列上定义了一置换…
群 群的定义 我们定义,对于一个集合 \(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…
洛谷题面传送门 首先很明显题目暗示我们先求出符合条件的戒指数量,再计算出由这些戒指能够构成的项链的个数,因此考虑分别计算它们.首先是计算符合条件的戒指数量,题目中"可以通过旋转重合的戒指视作相同"可以让我们联想到 Polya 定理,具体来说根据 Polya 那套理论,符合条件的戒指个数就是 \(C=\dfrac{1}{m}\sum\limits_{d\mid n}R^d\varphi(\dfrac{n}{d})\),\(\mathcal O(\sqrt{n})\) 地枚举因子并计算 \…