burnside&polya

$ans=\frac{1}{|G|}\sum_{g \in G}fix(g)$

大致理解:本质不同的情况数*置换数=每种置换情况下不变的情况数之和

hdu6360 Kaleidoscope

考虑60面体是正12面体每个面由凹入的五个面代替形成的,其所有的旋转置换与正12面体类似。

分类讨论:

1.对于穿过两个面中心的12/2=6条对称轴,可以旋转k⋅π/5,k=1,2,3,4,此时每五个菱形颜色需要一样,共24个置换

2.对于穿过两个尖点的12*5/3/2=10条对称轴,可以旋转k⋅π/3,k=1,2,此时每三个菱形颜色需要一样,共20个置换

3.对于穿过两条边中点的12*5/2/2=15条对称轴,只能旋转π/2,此时每两个菱形颜色需要一样,共15个置换

4.不动,此时每个菱形颜色独立,共1个置换

由burnside引理,染色方案数即为$frac{1}{60}*(f(1)+15⋅f(2)+20⋅f(3)+24⋅f(5))$。

其中f(i)表示在第j种颜色数量不小于$\lceil\frac{c_j}{i}\rceil$前提下给$\frac{60}{i}$个块染色的方案数,可以dp背包。

为了最后/60,在运算过程中的模数为60m,由于模数超过int,需要快速乘法。

posted @ 2019-06-09 23:19  alonefight  阅读(24)  评论(0编辑  收藏  举报