题目链接:https://vjudge.net/problem/UVA-10294

题解:

白书P146~147。

为什么旋转i个间距,就有gcd(i,n)个循环,且每个循环有n/gcd(i,n)个元素?

证明:

  (gcd:最大公约数,lcm:最小公倍数)

将珠子从0到n-1标号,对于旋转i位的置换,在以0号为起点,长度为t的一个循环节中,元素标号为:0,i%n,(i*2)%n,…,(i*(t-1))%n

易知:(i*t)%n==0(循环大小为t,跳t次就回到初始点0),即 n*k == i*t,其中n,k,i,t为正整数,因此等式左右的最小值为lcm(n,i),即i*t==lcm(n,i),为什么i*t取最小值,即t取最小值?因为是从0第一次跳到0就完成整个循环的遍历,这个“第一次”就决定了是最早满足条件的那个t,即最小t。

∴ t == lcm(n,i)/i == ( n*i/gcd(n,i) )/i == n/gcd(n,i)

∴ 循环节t==n/gcd(n,i),循环节的个数为:n/t == gcd(n,i)

代码如下:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <string>
#include <set>
using namespace std;
typedef long long LL;
const int INF = 2e9;
const LL LNF = 9e18;
const int MOD = 1e9+;
const int MAXN = ; LL gcd(LL a, LL b)
{
return b==?a:gcd(b,a%b);
} LL Pow[MAXN];
int main()
{
int n, t;
while(scanf("%d%d", &n,&t)!=EOF)
{
Pow[] = ;
for(int i = ; i<=n; i++) Pow[i] = 1LL*Pow[i-]*t;
LL a = , b = ;
for(int i = ; i<n; i++)
a += Pow[gcd(i,n)];
if(n%)
b = 1LL*n*Pow[n/+];
else
b = 1LL*n/*(Pow[n/]+Pow[n/+]); printf("%lld %lld\n", a/n, (a+b)//n);
}
}

UVA10294 Arif in Dhaka (First Love Part 2) —— 置换、poyla定理的更多相关文章

  1. [Uva10294]Arif in Dhaka

    [Uva10294]Arif in Dhaka 标签: 置换 Burnside引理 题目链接 题意 有很多个珠子穿成环形首饰,手镯可以翻转和旋转,项链只能旋转.(翻转过的手镯相同,而项链不同) 有n个 ...

  2. UVA10294 Arif in Dhaka (群论,Polya定理)

    UVA10294 Arif in Dhaka (群论,Polya定理) 题意 : 给你一个长为\(n\)的项链和手镯,每个珠子有\(m\)种颜色. 两个手镯定义为相同,即它们通过翻转和旋转得到一样的手 ...

  3. UVA10294 Arif in Dhaka (First Love Part 2)

    题意 PDF 分析 用n颗宝石串成项链和手镯, 每颗宝石的颜色可以t种颜色中的一种,当A类项链经过旋转得B类项链时,A和B属于一类项链, 而手镯不仅可以旋转还可以翻转,当A类手镯经过翻转得得到B类手镯 ...

  4. Uva10294 Arif in Dhaka (置换问题)

    扯回正题,此题需要知道的是置换群的概念,这点在刘汝佳的书中写的比较详细,此处不多做赘述.此处多说一句的是第二种手镯的情况.在下图中“左图顺时针转1个位置”和“右图顺时针旋转5个位置”是相同的,所以在最 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. windows8开发-关于wp7应用迁移到win8 metro风格

    虽然微软说,wp7应用移植到win8上面是比较简单,只需要修改部分API和设计原则上的细节,同时它也提供了一份比较简洁的参考文档: 而实际上这种移植的工作量还是不小的,尤其当应用引用了较多底层的API ...

  2. 2017.3.14 activiti实战--第二十章--REST服务

    学习资料:<Activiti实战> 第二十章 REST服务 20.1 通信协议概述 略. 20.2 REST API概述 资源分类 资源基础URI 说明 Deployments manag ...

  3. 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...

  4. Android4.0(Phone)拨号启动过程分析(一)

    因为工作的须要.须要改动原生的Phone程序,如今就好好看下来电与拨号是怎样处理的:无论是拨号还是来电,调用的都是Phone程序,因为非常多类都涉及到framework层,比較复杂:先从简单的拨号分析 ...

  5. UML的基本图(三)

     An artifact diagram shows the physical constituents of a system on the computer. Artifacts includ ...

  6. Mjpg_Streamer 的移植

    1. 移植mjpg-streamer a.1 移植libjpeg tar zxf libjpeg-turbo-1.2.1.tar.gz cd libjpeg-turbo-1.2.1 ./configu ...

  7. layui-简单辅助元素 - 页面元素

    本篇主要集中罗列页面中的一些简单辅助元素,如:引用块.字段集区块.横线等等,这些元素都无需依赖任何模块 <!DOCTYPE html> <html> <head> ...

  8. 楼梯跳跃代码web

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. Javascript模式(一) 单例模式

    function A(){ // 存储实例对象 var instance; // 重写构造函数,只返回闭包内的局部变量instance A = function(){ return instance; ...

  10. solr入门之pinyin4j源代码改写动态加入扩展词及整合进war项目中

    1.初始化时载入用户定义的字典 package net.sourceforge.pinyin4j; import net.sourceforge.pinyin4j.multipinyin.Trie; ...