题目来源:UVa 10294 Arif in Dhaka (First Love Part 2)

题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转

  【分析】

  要开始学置换了。

  置换是什么呢? 

置换的广义概念在不同语境下有不同的形式定义:

集合论中,一个集合的置换是从该集合映至自身的双射;在有限集的情况,便与上述定义一致。
组合数学中,置换一词的传统意义是一个有序序列,其中元素不重复,但可能有阙漏。例如1,2,4,3可以称为1,2,3,4,5,6的一个置换,但是其中不含5,6。此时通常会标明为“从n个对象取r个对象的置换”。
 
 
  置换的乘法:
  f={1,3,2} g={2,1,3} f*g={2,3,1}
  计算过程是 1->1->2, 2->3->3 , 3->2->1 。
  
  置换的循环移位  (1 4 3)表示1->4, 4->3, 3->1。
  比如 (1 2 3 4 5)
            (3 5 1 4 2) =(1 3)(2 5)(4)
  循环节为3.
 
  等价类计数问题
  题目定义一种等价关系,满足等价关系的元素被看成是同一类,只统计一次。等价关系满足自反性、对称性、传递性。
   
  burnside引理
  对于一个置换f,若一个着色方案s经过置换后不变,称s为f的不动点。(即循环里面只有一个元素)
  将f的不动点数目记为C(f),则可以证明等价类数目为所有C(f)的平均值。
 
  这题用到burnside引理或polya定理。(polya定理可以用burnside引理证明)
 
  本题:
  旋转:
    如果逆时针旋转i颗珠子的间距,那么珠子0,i,2*i...构成一个循环。这个循环有n/gcd(i,n)个元素,根据对称性,所有循环长度均相同,因此一共有gcd(i,n)个循环。这些置换的不动点总数为a=sigma(t^gcd(i,n))。
 
  翻转:
    分两种情况讨论。当n为奇数时,对称轴有n条,。。。。不动点总数为$n*t$^$\dfrac{n+1}{2}$
    当n为偶数是时,有两种对称轴,一共n条,。。。。不动点总数为$\dfrac{n}{2}*(t$^$(\dfrac{n}{2}+1)+t$^$\dfrac{n}{2})$
 
  加起来求均值即可。
 
  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<cmath>
  7. using namespace std;
  8. #define Maxn 60
  9. #define LL long long
  10.  
  11. LL pw[];
  12.  
  13. int gcd(int a,int b)
  14. {
  15. if(b==) return a;
  16. return gcd(b,a%b);
  17. }
  18.  
  19. int main()
  20. {
  21. int n,t;
  22. while(scanf("%d%d",&n,&t)!=EOF)
  23. {
  24. pw[]=;
  25. for(int i=;i<=n;i++) pw[i]=pw[i-]*t;
  26. LL a=;
  27. for(int i=;i<n;i++) a+=pw[gcd(i,n)];
  28. LL b=;
  29. if(n%==) b=n*pw[(n+)/];
  30. else b=n/*(pw[n/+]+pw[n/]);
  31. printf("%lld %lld\n",a/n,(a+b)//n);
  32. }
  33. return ;
  34. }

  其实觉得这题的数据范围过不了啊,不是10^50了么????

  为什么大家都这样打??

2017-01-11 11:18:14

【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)的更多相关文章

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

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

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

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

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

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

  4. UVA10294 Arif in Dhaka (First Love Part 2) —— 置换、poyla定理

    题目链接:https://vjudge.net/problem/UVA-10294 题解: 白书P146~147. 为什么旋转i个间距,就有gcd(i,n)个循环,且每个循环有n/gcd(i,n)个元 ...

  5. [Uva10294]Arif in Dhaka

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

  6. UVa 10294(polya 翻转与旋转)

    Arif in Dhaka(First Love Part 2) Input: standard input Output: standard output Time Limit: 2 seconds ...

  7. UVA 10294 项链与手镯 (置换)

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

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

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

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

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

随机推荐

  1. vue-route-transition路由前进后退动画

    vue-route-transition vue router 切换动画 特性 模拟前进后退动画 基于css3流畅动画 基于sessionStorage,页面刷新不影响路由记录 路由懒加载,返回可记录 ...

  2. 用reduce实现简单的pipe

    function pipe(src, ...fns){ return fns.reduce(function(fn1, fn2){ return fn2(fn1) }, src); } undefin ...

  3. 【NOIP】2013提高组 花匠(摆花)

    [算法]DP||贪心 [题解] (1)动态规划: 令f[i][0..1]为两种条件下前i株花的最大保留数量,状态转移方程: f[i][0]=max(f[j][1]+1) (j=i-1...1)(h[i ...

  4. 24、redis中的sentinel的作用?

    redis中的sentinel的作用? Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Re ...

  5. winform Textbox像百度一下实现下拉显示

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. Python 编码问题:出现中文乱码-- (转)

    问题描述: 在写Python代码的过程中,有用到需要输出中文的地方(python2.6.5在中文注释的地方就会出错),但是运行后会出错 我的错误显示: SyntaxError: Non-ASCII c ...

  7. hdu 1102 Constructing Roads (最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 Constructing Roads Time Limit: 2000/1000 MS (Jav ...

  8. vue路由-动态路由和嵌套路由

    一.动态路由 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那么,我们可以在 vue-route ...

  9. 真正的上锁前,为何要调用preempt_disable()来关闭抢占的case【转】

    转自:http://blog.csdn.net/kasalyn/article/details/11473885 static inline void raw_spin_lock(raw_spinlo ...

  10. python mysql插入数据遇到的错误

    1.数据插入的时候报错:not enough arguments for format string,大概意思就是说没有足够的参数格式化字符串. 我的数据库插入方法是这样的 def add_data( ...