UVA 10294 项链与手镯 (置换)
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 项链与手镯 (置换)的更多相关文章
- UVa 10294 项链和手镯(polya)
https://vjudge.net/problem/UVA-10294 题意: 手镯可以翻转,但项链不可以.输入n和t,输出用t种颜色的n颗珠子能制作成的项链和手镯的个数. 思路: 经典等价类计数问 ...
- 项链与手镯Uva 10294——Polya定理
题意 项链和手镯都是由若干珠子串成的环形首饰,区别在于手环可以翻转,但项链不可以. 输入整数 $n$ 和 $t$,输出用 $t$ 中颜色 $n$ 颗珠子能制作成的项链和手镯的个数.($1\leq n ...
- 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...
- UVA 10294 等价类计数
题目大意: 项链和手镯都是若干珠子穿成的环形首饰,手镯可以旋转和翻转,但项链只能旋转,给n个珠子,t种颜色,求最后能形成的手镯,项链的数量 这里根据等价类计数的polya定理求解 对于一个置换f,若一 ...
- Arif in Dhaka (First Love Part 2) UVA - 10294(Polya定理)
这题和POJ-1286一样 题意: 给出t种颜色的n颗珠子 (每种颜色的珠子个数无限制,但总数必须是n), 求能制作出项链和手镯的个数 注意手镯可以翻转和旋转 而 项练只能旋转 解析: 注意Poly ...
- UVa 10294 Arif in Dhaka (First Love Part 2) (Polya定理)
题意:给定 n 和 m 表示要制作一个项链和手镯,项链和手镯的区别就是手镯旋转和翻转都是相同的,而项链旋转都是相同的,而翻转是不同的,问你使用 n 个珠子和 m 种颜色可以制作多少种项链和手镯. 析: ...
- UVa 10294 Arif in Dhaka (First Love Part 2)(置换)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35397 [思路] Polya定理. 旋转:循环节为gcd(i,n) ...
- UVa 10294 (Pólya计数) Arif in Dhaka (First Love Part 2)
Burnside定理:若一个着色方案s经过置换f后不变,称s为f的不动点,将置换f的不动点的数目记作C(f).等价类的数目等于所有C(f)的平均值. 一个项链,一个手镯,区别在于一个能翻转一个不能,用 ...
- Uva 10294 Arif in Dhaka (First Love Part 2)
Description 现有一颗含\(N\)个珠子的项链,每个珠子有\(t\)种不同的染色.现求在旋转置换下有多少种本质不同的项链,在旋转和翻转置换下有多少种本质不同的项链.\(N < 51,t ...
随机推荐
- Spring Boot 2.x基础教程:使用Flyway管理数据库版本
之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的JdbcTemplate.Spring Data JPA以及我们国内最常用的MyBatis.同时, ...
- Solon rpc 之 SocketD 协议 - RPC鉴权模式
Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 Soc ...
- go mod 拉取私有仓库
前言 如果代码中依赖了本地的包, 这个包是托管在内网 Gitlab 中, 而且不是 HTTPS 服务,那么应该怎样使用 go mod 拉取代码呢? 本文会给你我的答案 正文 首先我们要知道, 如果本地 ...
- 【JavaWeb】AJAX 请求
AJAX 请求 什么是 AJAX AJAX(Asynchronous JavaScript And XMl),即异步 JS 和 XML.是指一种创建交互式网页应用的网页开发技术. AJAX 是一种浏览 ...
- 【SpringBoot】Spring Boot 集成SwaggerAPI
Spring Boot 集成SwaggerAPI 文章目录 Spring Boot 集成SwaggerAPI Swagger 添加依赖 配置类 config 控制类 controller 接口测试 页 ...
- mysql—group_concat函数
MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Or ...
- C++:I/O流的概念和流类库的结构
一.C++输入输出包含以下三个方面的内容: 对系统指定的标准设备的输入和输出.即从键盘输入数据,输出到显示器屏幕.这种输入输出称为标准的输入输出,简称标准I/O. 以外存磁盘文件为对象进行输入和输出, ...
- SDNU_ACM_ICPC_2021_Winter_Practice_4th [个人赛]
传送门 D - Odd Divisor 题意: 给你一个n,问你n是否至少有一个奇数因子(这里题意没说清,没说是不是只有一个还是可以有多个!AC以后才发现是不止一个 思路: 如果这个数没有奇数因子,那 ...
- Netty之JAVA BIO模型
一.JAVA BIO模型 1.I/O模型 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能 Java 共支持 3 种网络编程模型/IO 模式:BIO.NI ...
- Linux 通过端口终止进程
以下命令可用于杀死占用某端口的所有进程. root 用户: kill -9 $(lsof -i tcp:进程号 -t) 非 root 用户: kill -9 $(sudo lsof -i tcp:进程 ...