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 ...
随机推荐
- 入门Kubernetes -基础概念
一.Kubernetes概述 Kubernetes ,又称为 k8s(首字母为 k.首字母与尾字母之间有 8 个字符.尾字母为 s,所以简称 k8s)或者简称为 "kube" ,是 ...
- WixVersionControl Wix项目版本控制
原文链接:https://www.swack.cn/wiki/001565675133949eff0d3d5a51f48288cf6d8248905e28f000/001569821278313e6b ...
- 剑指offer-查找数组中重复的数字
找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...
- MySQL 设置保留几天的binlog
1 ) 查看默认的日志保存天数: mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Va ...
- Java开发手册之编程规约
时隔一年多,再次开始更新博客,各位粉丝们久等了.大家是不是以为我像大多数开发者一样三分钟热度,坚持了一年半载就放弃了,其实不是.在过去的一年时间我学习了<Java编程思想>这本书,因为都是 ...
- 【Linux】云服务器部署宝塔linux控制面板环境
服务器购买及宝塔部署环境说明 简单记录 - 狂神的 服务器购买及宝塔部署环境说明 服务器如何购买 我们尽量趁打折的时候购买,比较便宜点!多看看有活动. 如果是学生,可以购买学生机, 学生机地址:htt ...
- LRU(Least Recently Used)最近未使用置换算法--c实现
在OS中,一些程序的大小超过内存的大小(比如好几十G的游戏要在16G的内存上跑),便产生了虚拟内存的概念 我们通过给每个进程适当的物理块(内存),只让经常被调用的页面常驻在物理块上,不常用的页面就放在 ...
- ctfhub技能树—信息泄露—hg泄露
打开靶机 查看页面信息 使用dvcs-ripper工具进行处理 ./rip-hg.pl -v -u http://challenge-cf630b528f6f25e2.sandbox.ctfhub.c ...
- 使用 gRPC-UI 调试.NET 5的gPRC服务
在上一篇文章中,我介绍了gRPCurl一个命令行工具,该工具可用于测试gRPC服务的端点,在本文中,我将向您介绍 gRPC-ui, 它可以作为Web工具使用,有点像Postman,但用于gRPC AP ...
- Flutter 自定义列表以及本地图片引用
前言 上篇关于Flutter的文章总结了下标签+导航的项目模式的搭建,具体的有需要的可以去看看Flutter分类的文章,这篇文章我们简单的总结一下关于Flutter本地文件引用以及简单的自定义List ...