我日啊..被cls的计数题虐得欲仙欲死...根本不会计数QAQ...

不懂数学啊...

前置技能

群是二元组\((G,*)\),满足

  • \(*:(G,G)\rightarrow G\)
  • \(\exists e\in G, \forall x\in G, x*e=x=e*x, \mathtt{(单位元)}\)
  • \(\forall x\in G, \exists y\in G, x*y=e, \mathtt{记}y=x^{-1}, \mathtt{(存在逆元)}\)
  • \(\forall x,y,z\in G, (x*y)*z=x*(y*z), \mathtt{(结合律)}\)

记\(a*b\)为\(ab\).

置换

一个作用在集合\(G\)上的置换群\((S_G,\circ)\)是\(s: G\rightarrow G\)(\(s\)是一一对应,称为作用在\(G\)上的置换)的集合,其中\(\circ\)是复合操作,即\(x,y\in S_G,t\in G, (x\circ y)(t)=y(x(t))\).

循环

循环是一类特殊的置换, 表示为\(f=(a_1a_2\cdots a_n)\),表示\(f(x)=\begin{cases}a_{(i+1)\bmod n} &,\mathtt{if}~x=a_i\\x &,\mathtt{whatever~else}\end{cases}\),记\(f\)为长度为\(n\)的置换,\(l(f)=n\)

显然一个置换可以分解为一堆不相交循环对\(\circ\)的乘积,只需要考察集合里的元素不断作用置换\(p\)回到原点时经过的元素.这个过程称为置换的分解,分解后的集合记为\(\alpha(p)\)(我也不知道可以用什么符号干脆就用个\(\alpha\)好孩子们别学我= =).

记\(\beta_k(p)=\sum\limits_{i\in \alpha(p)}[l(i)=k]\)(即p的分解中长度为\(k\)的循环的个数).

Pólya定理

对于set(\(X\)),group(\(G\subseteq S_X,\circ\)),用\(m\)种颜色给\(X\)染色,求方案数.

等价性: 若两个染色\(x,y\)可以通过\(G\)中的一个置换的作用变为相等,这两个置换就是等价的.

相信学习Pólya的大家都见过这个式子:

\[\mathtt{ans}=\frac{1}{\mid G\mid}\sum_{g\in G}m^{\mid \alpha(g)\mid}\]

但是这个式子其实是一个简化版的Pólya定理= =.它太弱了,甚至不能处理颜色个数有不同的情况..

(待补.)

Pólya计数定理的更多相关文章

  1. 【等价的穿越】Burnside引理&Pólya计数法

    Problem 起源: SGU 294 He's Circle 遗憾的是,被吃了. Poj有道类似的: Mission 一个长度为n(1≤n≤24)的环由0,1,2组成,求有多少本质不同的环. 实际上 ...

  2. 组合数学之Pólya计数理论

    1 群 群$(G, cdot)$: 闭合, 结合律, 幺元, 逆 1.1 置换群 置换为双射$pi:[n]to [n]$, 置换之间的操作符 $cdot$ 定义为函数的复合, 即$(pi cdot s ...

  3. UVa 10294 (Pólya计数) Arif in Dhaka (First Love Part 2)

    Burnside定理:若一个着色方案s经过置换f后不变,称s为f的不动点,将置换f的不动点的数目记作C(f).等价类的数目等于所有C(f)的平均值. 一个项链,一个手镯,区别在于一个能翻转一个不能,用 ...

  4. polya计数定理在ACM-icpc中的应用

    [数学公式] PG(x1,x2,...,xn) = 1/|G| * ∑π∈G x1^b1 * x2^b2*...*bn^bn   其中π是1^b12^b2...n^bn型轮换 然后一般染色情况下x1= ...

  5. 组合数学(Pólya计数原理):UvaOJ 10601 Cubes

    Cubes You are given 12 rods of equal length. Each of them is colored in certain color. Your task is ...

  6. 置换群 Burnside引理 Pólya定理(Polya)

    置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|= ...

  7. 数学:Burnside引理与Pólya定理

    这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...

  8. [spoj104][Highways] (生成树计数+矩阵树定理+高斯消元)

    In some countries building highways takes a lot of time... Maybe that's because there are many possi ...

  9. bzoj 1004 Cards 组合计数

    这道题考察的是组合计数(用Burnside,当然也可以认为是Polya的变形,毕竟Polya是Burnside推导出来的). 这一类问题的本质是计算置换群(A,P)中不动点个数!(所谓不动点,是一个二 ...

随机推荐

  1. Jquerymobile 简单安装

    需要导入三个文件jquery,jquerymobile,css(jquerymobile地址:http://jquerymobile.com/) <script src="js/jqu ...

  2. 免 sudo 使用 docker

    免 sudo 使用 docker 如果还没有 docker group 就添加一个: sudo groupadd docker 将用户加入该 group 内.然后退出并重新登录就生效啦. sudo g ...

  3. autofac Adding services after container has been built

    http://stackoverflow.com/questions/6173566/run-time-registration-with-autofac Yes you can, using the ...

  4. yum -y install与yum install有什么不同

    yum -y install 包名(支持*) :自动选择y,全自动 yum install 包名(支持*) :手动选择y or n yum remove 包名(不支持*) rpm -ivh 包名(支持 ...

  5. Ansible简介及常用模块

    一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  6. PHP数组处理函数的使用array_map(三)

    /*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...

  7. Java多线程编程核心技术---线程间通信(一)

    线程是操作系统中独立的个体,但这些个体如果不经过特殊处理就不能成为一个整体.线程间的通信就是成为整体的必用方案之一.线程间通信可以使系统之间的交互性更强大,在大大提高CPU利用率的同时还会使程序员对各 ...

  8. Java多线程编程核心技术---对象及变量的并发访问(二)

    数据类型String的常量池特性 在JVM中具有String常量池缓存的功能. public class Service { public static void print(String str){ ...

  9. Redis命令大全&中文解释&在线测试命令工具&在线中文文档

    在线测试命令地址:http://try.redis.io/ 官方文档:http://redis.io/commands http://redis.io/documentation Redis 命令参考 ...

  10. php函数mt_rand和rand 速度测试

    今天在写代码时,看到以前的同时写了一个取随机数,用到了mt_rand(2,19) 就顺手搜了一下,mt_rand和rand的区别. 先看官方的解释 mt_rand 和 rand mt_rand — 生 ...