码迷,mamicode.com
首页 > 其他好文 > 详细

Polya及burnside总结

时间:2016-10-10 23:20:41      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

最近几天学习了群论及与其密切相关的burnside引理与polya定理,觉得并没有想象中的那么难。

群的定义见这里:http://baike.baidu.com/link?url=4TeuVkgLQvza-_fSdtr861Gm7j17R08k2CCZiS1XI6c1CFMOsqI4DLnz_i5ApbjgAHBMJLQFnp27ieHZ06J6IpvZvN8akwyk0dtTUX4r2My

置换的定义见这里:http://baike.baidu.com/link?url=68IFmbIQOaSgzXYsXVleZEAttqaohv5gnAvJMK-qKQddjMV6cGSvFEa6S9jgsY4HP2kKMd8Uxyb6HkBIzFiwOyQX_qpo5iPZptKyNfQJpluB-YT1EBUR5mvXvUd3sUnw

很多题目都是问你有多少不同的染色方案,如果一个方案能通过旋转等一系列操作得到另一个方案,那么这两个方案就是相同的方案。对于这类题目就需要burnside引理与polya定理了。

burnside引理:

设G ={a1, a2, a3 …, a|G|}是N={1, 2, 3 …, N}上的置换群,G在N上可引出不同的等价类,其不同的等价类个数为 技术分享.

这个引理求解在于求出在所有置换下,有多少种方案在此置换下不变,这样我们就需要遍历所有可能的情况,然后计算不变的方案数。

burnside引理的c很难求,那么能不能找到问题的本质?:即在此置换下不变的方案数?

polya定理:设G ={a1, a2, a3 …, a|G|}是N={1, 2, 3 …, N}上的置换群,现用m种颜色对这N个对象进行染色,其不同的染色方案为

技术分享

注意这里是对这n个对象标号,然后考虑这些对象之间的置换,c表示这个置换中循环的个数,证明,要求不变的方案数,那么每个循环中一定要染成相同的颜色,有m种颜色,根据乘法原理就是m^c.

看几道例题:

zju1961 Let it Bead

题意:给定颜色种数m和环上的珠子总数n,问有多少种染色方案(通过旋转和翻转相同的算同一种)。 

做法:该题一共有两种置换,先考虑旋转:

一共有n种旋转方式,分别为顺时针旋转1~n格,然后可以证明旋转i格所形成的循环个数为gcd(i,n)。

再考虑翻转:

分奇偶考虑:当n为奇数时,n条对称轴,循环个数都是(n+1)/2,当n为偶数时,也有n条对称轴,其中n/2条对应的置换形成的循环个数n/2,其余的形成n/2+1条。

这个题目直接计算即可。

 

再看一个例题:给定颜色数n和珠子数n,n<=10^9,通过旋转算一种,我们要求的就是sigam(n^(gcd(n,i)-1)),gcd只有根号n种,我们把gcd相同的一起计算即可,算是数论的优越性吧。

Polya及burnside总结

标签:

原文地址:http://www.cnblogs.com/OYzx/p/5947501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!