POJ 2409 Let it Bead (Polya定理)

题意

用k种颜色对n个珠子构成的环上色,旋转翻转后相同的只算一种,求不等价的着色方案数。

思路


 

Polya定理

X是对象集合{1, 2, ……, n}, 设G是X上的置换群,用M种颜色染N种对象,则不同的染色方案数为: Polya定理   λ(g)表示置换g的轮换个数,且λ(g) = λ1(g) + λn(g) + …… + λn(g),其中λi(g)表示g中长度为i的轮换(循环)个数.
  本题是对一个n个珠子的圆珠的颜色,而圆珠的置换群有: Ⅰ翻转:1.当n为奇数时,有n种翻转,每种翻转的轴都是一个顶点和该顶点对边中点的连线,有n种置换,每种置换的轮换个数均为(n/2+1)。 2.当n为偶数时,有n种翻转,其中n/2种转轴是两个对应顶点连线,轮换个数为n/2+1;另n/2种转轴是两条对边中点的连线,轮换个数为n/2。 Ⅱ旋转:枚举旋转角度360/n*i,有n种旋转;第i种旋转有gcd(n, i)个轮换,每个轮换的长度都是n/gcd(n, i)。 然后带入公式即可.

代码

  [cpp] #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #include <cstring> #include <vector> #include <set> #include <stack> #include <queue> #define MID(x,y) ((x+y)/2) #define MEM(a,b) memset(a,b,sizeof(a)) #define REP(i, begin, end) for (int i = begin; i <= end; i ++) using namespace std; int gcd(int a, int b){ return b?gcd(b, a%b):a; } int main(){ //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int c, s; while(scanf("%d %d", &c, &s) != EOF){ long long res = 0; if (c + s == 0) break; if (s % 2 == 1){ res += (long long)s * pow(c, s/2+1); } else{ res += (long long)(s/2) * (pow(c, s/2) + pow(c, s/2+1)); } for (int i = 1; i <= s; i ++){ res += (long long)pow(c, gcd(s, i)); } printf("%I64d\n", res/2/s); } return 0; } [/cpp]  

转载于:https://www.cnblogs.com/AbandonZHANG/p/4114132.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

seo

SEO&#xff08;Search Engine Optimization&#xff09;&#xff0c;汉译为搜索引擎优化&#xff0c;是较为流行的网络营销方式&#xff0c;主要目的是增加特定关键字的曝光率以增加网站的能见度&#xff0c;进而增加销售的机会。分为站外SEO和站内SEO两种。SEO的主要工作是通…

Ubuntu Server 之Apache2 虚拟主机配置指南(个人实践解读)

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/468531 这是完成在ubuntu Server的apache服务器上安装一个虚拟主机的具体配置。希望对用到的朋友有所帮…

java10支持mybatis_写了10年的代码,我最怕写Mybatis这些配置,现在有详解了

作者 | 阿进的写字台链接 | www.cnblogs.com/homejim/p/9782403.html在使用 mybatis 过程中&#xff0c; 当手写 JavaBean和XML 写的越来越多的时候&#xff0c; 就越来越同意出错。这种重复性的工作&#xff0c; 我们当然不希望做那么多。还好&#xff0c; mybatis 为我们提供…

webservice-WebService试题

ylbtech-doc:webservice-WebService试题WebService试题 1.A,返回顶部001&#xff0e;{WebService题目}下列是Web服务体系结构中的角色的是&#xff08;&#xff09;&#xff08;选择3项&#xff09; A&#xff09;服务提供者 B&#xff09;服务请求者 C&#…

Session的模拟

Session相关的mock Session相关的mock主要有以下两个步骤&#xff1a; 1&#xff09; HttpContext对象的实例化 session属于HttpContext对象&#xff0c;所以简单来说&#xff0c;就是我们需要构造一个HttpContext&#xff0c;对象然后在给其中的Session附值。然后再把它指定到…

定时自动启动任务crontab命令用法

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://navyaijm.blog.51cto.com/4647068/816636 crontab简介 crontab命令常见于Unix和类Unix的操作系统之中&#xff0c;用于设置周期性被执行的…

9读书1-我在义务发财(1)

母亲说完&#xff0c;父亲就起身出门了。我没出门&#xff0c;上楼到了我的房间里。我要干两件事情&#xff1a;一是写“发财”两个大字贴在我的床头&#xff1b;二是在手上刺青。 //有时候为了达到自己心中说想打目标&#xff0c;必须时时刻刻的提醒自己&#xff0c;这就是一些…

java忽略引号中的分隔符_java – 令牌化但忽略引号内的分隔符

在这种情况下,使用java.util.regex.Matcher更容易使用find()而不是任何类型的拆分.也就是说,不必定义令牌之间的分隔符的模式,您可以为令牌本身定义模式.以下是一个例子&#xff1a;String text "1 2 \"333 4\" 55 6 \"77\" 8 999";// 1 2 &quo…

【转】Tomcat+MyEclipse

TomcatMyEclipse 单位&#xff1a;河南恩湃电力技术有限公司 部门&#xff1a;IT部—应用集成项目组 编写&#xff1a;刘志华 日期&#xff1a;2010-4-19 说明 本文中要讲述在程序开发过程中Tomcat和MyEclipse的一些使用方法和常用配置&#xff0c;本文适用于公司内部所有使用T…

学生管理系统(C语言)

1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #define N 35 #define LEN (Student*) malloc(sizeof(Student))6 /* 学生数据结构 */7 typedef struct node8 {9 char num[20];10 char name[15];11 int score[N];12 int …

linux java usb 串口_2019-11-02 Linux下USB-串口的使用

在实验室配置一台设备要用到串口&#xff0c;但串口线只连到了linux服务器上&#xff0c;又不想跑一趟实验室&#xff0c;就直接用linux串口连吧&#xff0c;以前都在windows上用putty&#xff0c; securecrt软件&#xff0c;还真没直接在linux上使用&#xff0c;查一下命令记录…

C++ STL的基本基本原理

STL都是在内存的堆区分配的&#xff0c;但是其析构也是STL帮我们做好的&#xff0c;不用手动去delete。 1.vector 逻辑地址连续的一片内存空间&#xff0c;当空间不足&#xff0c;重新申请新的地址空间&#xff0c;将原有的数据复制过去&#xff0c;而新的地址空间的大小C没有规…

IE9不支持CSS line-height的文字垂直居中解决方法

IE9不支持line-height原因&#xff1a;中文ie9不支持英文字体 相信大家在IE9看见自己使用line-height设置垂直居中文字不能垂直居中&#xff0c;这是与你设置字体有关&#xff0c;通常大家习惯设置font-family:Arial, Helvetica, sans-serif; ie9中line-height失效解决方法&…

iOS 修改项目名称

2019独角兽企业重金招聘Python工程师标准>>> 1. [代码]iOS 修改项目名称 1 2. [图片] 1.png 3. [图片] 2.png 4. [图片] 3.png 5. [图片] 4.png 6. [图片] 5.png 转载于:https://my.oschina.net/5951008876/blog/681857

java wait源码_Java精通并发-透过openjdk源码分析wait与notify方法的本地实现

上一次https://www.cnblogs.com/webor2006/p/11442551.html中通过openjdk从c的底层来审视了ObjectMonitor的底层实现&#xff0c;这次继续来探究底层&#xff0c;对于wait()和notify()的底层细节到底是啥样的呢&#xff1f;下面还是先来到openjdk中来打开ObjectMonitor.hpp&…

jquery实现多级下拉菜单

支持多种浏览器&#xff0c;体验效果&#xff1a;http://keleyi.com/keleyi/phtml/jqmenu/4.htm多级菜单&#xff0c;理论上支持无限多的层级&#xff0c;文件结构非常简单的&#xff0c;以下是完整代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T…

listActivity和ExpandableListActivity的简单用法

今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。 首先&#xff0c;先说一下listActivity的用法&#xff1a; ListActivity是一个绑定到一个数据源&#xff0c;并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑…

搭建git for windows服务器(100%可以成功)【转】

转自&#xff1a;http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用&#xff0c;为什么还要搭建git windows的服务器&#xff0c;因为不是所有的用户都需要在linux下面做开发&#xff0c;对吧&#xff0c;还有很多用户选择使用windows做开…

eclipser认java源码_java相关:Eclipse查看开发包jar里源代码的方法

java相关&#xff1a;Eclipse查看开发包jar里源代码的方法发布于 2020-5-21|复制链接摘记: Eclipse查看开发包jar里源代码的方法前言&#xff1a;最近我打算学习一下谷歌的类库Guava&#xff0c;下载了Guava-r09.jar包及其源码&#xff0c;为了可以方面的看其源码&#xff0c;我…

php归档函数(按时间)实现

今日开发本站需要用到按时间归档文章的功能&#xff0c;即按文档发布时间将文章文类&#xff0c;以实现检索和统计功能&#xff0c;于是自己写了一个&#xff0c; 现分享给大家&#xff0c;相信大家工作和学习中有可能会用到&#xff0c;实现原理很简单&#xff0c;即取出文章发…