Burnside引理:对于一个置换\(f\), 若一个着色方案\(s\)经过置换后不变,称\(s\)为\(f\)的不动点。将\(f\)的不动点数目记为\(C(f)\), 则可以证明等价类数目为\(C(f)\) 的平均值。

也就是对于置换群中的某一个置换\(f\),\(C(f)\)为所有着色方案中,那些经过置换\(f\) 可以互相转换(即等价)的着色方案数

因为一个置换可以拆成若干个循环,置换中的每个元素可以看成是一个结点,那么每个节点必有一个出度和入度,所以肯定会形成若干个环,在置换\(f\) 的不动点中,被分解成的每个环中,颜色都必须相同(因为通过置换他们可以相互抵达)。如果设一个置换中的循环节数量为\(m(f)\),那么\(C(f) = k^{m(f)}\) 其中 k 是着色数量。

UVA 10294 项链与手镯

传送门

刘汝佳白书146页

polya计数裸题

一共有两种置换,即旋转和翻转,项链只有第一种置换,手镯两种都有。设珠子编号为0~n-1.

旋转:

共有n-1种旋转方式的置换,第 i 种即旋转 i 颗珠子的间距,那么可以计算出来从0号珠子出发,要旋转\(lcm(i,n) / i\) 次可以转到最初的位置,那么这个循环长度为\(\frac{n}{gcd(i,n)}\) 。共该置换共有\(gcd(i,n)\) 个循环,所以旋转这类置换,共有\(a = \sum_{i=0}^{n-1}t^{gcd(i,n)}\) 个不动点

翻转

当 n 为奇数时(可以想正 n 边形的顶点),有 n 条对称轴,每条对称轴形成了\((n-1)/2\) 个长度为2的,1个长度为1的循环,即(n+1)/2个循环。这些置换的不动点总数为\(b=nt^{\frac{n+1}{2}}\)。

当 n 为偶数时,有两种对称轴。穿过珠子的对称轴有\(\frac{n}{2}\) 条, 各形成了\(n/2-1\) 个长度为2的循环和两个长度为1的循环;不穿过珠子的对称轴有 \(\frac{n}{2}\), 各形成了\(n/2\) 个长度为2的循环。这些置换的不动点总数为\(b=\frac{n}{2}(t^{n/2+1} + t^{n/2})\)

const int N = 50 + 5;

int n, t;
ll power[N];
ll gcd(int a,int b){
return b == 0 ? a : gcd(b, a % b);
}
int main() {
while(scanf("%d%d",&n,&t) == 2 && n){
power[0] = 1;
for (int i = 1; i <= n;i++)
power[i] = power[i - 1] * t;
ll a = 0;
for (int i = 0; i < n;i++)
a += power[gcd(i, n)];
ll b = 0;
if(n % 2 == 1){
b = n * power[(n + 1) / 2];
}else
b = n / 2 * (power[n / 2 + 1] + power[n / 2]);
cout << a / n << ' ' << (a + b) / 2 / n << endl;
}
return 0;
}

UVA 10294 项链与手镯 (置换)的更多相关文章

  1. UVa 10294 项链和手镯(polya)

    https://vjudge.net/problem/UVA-10294 题意: 手镯可以翻转,但项链不可以.输入n和t,输出用t种颜色的n颗珠子能制作成的项链和手镯的个数. 思路: 经典等价类计数问 ...

  2. 项链与手镯Uva 10294——Polya定理

    题意 项链和手镯都是由若干珠子串成的环形首饰,区别在于手环可以翻转,但项链不可以. 输入整数 $n$ 和 $t$,输出用 $t$ 中颜色 $n$ 颗珠子能制作成的项链和手镯的个数.($1\leq n ...

  3. 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)

    题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...

  4. UVA 10294 等价类计数

    题目大意: 项链和手镯都是若干珠子穿成的环形首饰,手镯可以旋转和翻转,但项链只能旋转,给n个珠子,t种颜色,求最后能形成的手镯,项链的数量 这里根据等价类计数的polya定理求解 对于一个置换f,若一 ...

  5. Arif in Dhaka (First Love Part 2) UVA - 10294(Polya定理)

    这题和POJ-1286一样 题意: 给出t种颜色的n颗珠子 (每种颜色的珠子个数无限制,但总数必须是n), 求能制作出项链和手镯的个数 注意手镯可以翻转和旋转  而 项练只能旋转 解析: 注意Poly ...

  6. UVa 10294 Arif in Dhaka (First Love Part 2) (Polya定理)

    题意:给定 n 和 m 表示要制作一个项链和手镯,项链和手镯的区别就是手镯旋转和翻转都是相同的,而项链旋转都是相同的,而翻转是不同的,问你使用 n 个珠子和 m 种颜色可以制作多少种项链和手镯. 析: ...

  7. UVa 10294 Arif in Dhaka (First Love Part 2)(置换)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35397 [思路] Polya定理. 旋转:循环节为gcd(i,n) ...

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

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

  9. Uva 10294 Arif in Dhaka (First Love Part 2)

    Description 现有一颗含\(N\)个珠子的项链,每个珠子有\(t\)种不同的染色.现求在旋转置换下有多少种本质不同的项链,在旋转和翻转置换下有多少种本质不同的项链.\(N < 51,t ...

随机推荐

  1. Facetoprocess_program_design

    面向过程程序设计 程序:计算机用可理解可执行的命令的集合. 过程:问题解决的步骤. 方法(函数) 结构化程序设计的基础 一.方法三要素 1 功能: 实现的功能(单一).简单.易维护 2 参数: (传入 ...

  2. 【递推】P1028数的计算

    题目相关 题目描述 我们要求找出具有下列性质数的个数(包含输入的正整数 n). 先输入一个正整数 n(n ≤1000),然后对此正整数按照如下方法进行处理: 不作任何处理: 在它的左边加上一个正整数, ...

  3. JAVA开发手册-Markdown

    前言 前 言 <Java 开发手册>是技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善.现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点 ...

  4. 【MyBatis】MyBatis CRUD

    MyBtis CRUD 文章源码 基于代理 DAO 的 CRUD 根据 ID 查询操作 在持久层接口中添加 findById 方法: public interface UserDAO { /** * ...

  5. 虚拟机linux共享文件夹

    linux共享文件夹问题 1. 初配置 2. 挂载 018.7.8 为了实现win7与VMware中linux文件夹共享很花费了一些时间,但终成正果 1. 初配置 虚拟机设置->选项->共 ...

  6. 不要把file,process或者super权限授予管理员以外的账号

    file权限的主要作用是通过select ....into outfile 写到服务器上具有写权限的目录下,作为文本格式存放,具有权限的目录也就是启动mysql时的用户权限目录.(没有理解) 可以将有 ...

  7. 原生工程接入Flutter实现混编

    前言 上半年我定的OKR目标是帮助团队将App切入Flutter,实现统一技术栈,变革成多端融合开发模式.Flutter目前是跨平台方案中最有潜力实现我们这个目标的,不管是Hybird还是React ...

  8. 【Oracle】delete表后commit后怎么找回,方法

    有些时候,不小心删除了一些需要的表,而且数据库不能停止,只能一直运行下去,这样的话很麻烦 下面介绍的方法就是删除表后通过时间戳后者scn找回删除的数据 模拟实验环境: 创建一个新表 SQL> c ...

  9. 【CRS】vipca最后一步执行报错CRS-0215

    当我们在安装Clusterware 的时候, 需要在第二节点上vipca , 配置到最后安装的时候, 安装到 75% 左右,报错:     CRS-0215 : Could not start res ...

  10. kubernets之pod的删除方式

    一 删除单个pod 1  删除指定命名空间的指定名称的pod k delete po kubia-manual -n defaultpod "kubia-manual" delet ...