用n个颜色的珠子编项链,求有多少种情况

由N(G,C) = 所有f的稳定核的和/|G|

m边形有m种旋转m种翻转

首先说旋转,有模线性方程可知每种旋转都有gcd(m,i)个循环节且每个循环节长度为n/gcd(m,i)

所以每个旋转的稳定核 = pow(n,gcd(m,i))

翻转的循环节数可有观察得知

#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<cmath>
#include<iostream>
using namespace std;
#define ll long long
int main(){
//freopen("in.cpp", "r", stdin);
ll ans;
int n, m;
while(scanf("%d%d", &n, &m), n+m){
ans = ;
ll sum = ;
for(int i =; i <= m; i++){
sum += pow(n, __gcd(i, m));
}
ans = sum;//cout<<"*"<<ans<<endl;
if(m & ){
sum = ;
for(int i = ; i < (m+)/; i++){
sum *= n;
}
sum *= m;
ans += sum;
}else{
sum = ;
for(int i = ; i < m/; i++){
sum *= n;
}
ans += m/*(sum + sum*n);
}//cout<<ans<<endl;
ans/= m*;
cout<<ans<<endl;
}
}

poj2409的更多相关文章

  1. 【poj2409】 Let it Bead

    http://poj.org/problem?id=2409 (题目链接) 题意 一个n个珠子的项链,每个珠子可以被染成t种颜色.项链可以翻转和旋转,问不同的染色方案数. Solution Pólya ...

  2. 【POJ2409】Let it Bead Pólya定理

    [POJ2409]Let it Bead 题意:用$m$种颜色去染$n$个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $n,m$很小就是了. 题解:在旋转$i ...

  3. [POJ1286&POJ2154&POJ2409]Polya定理

    Polya定理 L=1/|G|*(m^c(p1)+m^c(p2)+...+m^c(pk)) G为置换群大小 m为颜色数量 c(pi)表示第i个置换的循环节数 如置换(123)(45)(6)其循环节数为 ...

  4. poj 1286&&poj2409 Polya计数 颜色匹配

    #include <iostream> #include <math.h> using namespace std; #define LL long long LL gcd(L ...

  5. poj2409 & 2154 polya计数+欧拉函数优化

    这两个题都是项链珠子的染色问题 也是polya定理的最基本和最经典的应用之一 题目大意: 用m种颜色染n个珠子构成的项链,问最终形成的等价类有多少种 项链是一个环.通过旋转或者镜像对称都可以得到置换 ...

  6. poj2409 Let it Bead

                                                                      Let it Bead Time Limit: 1000MS   M ...

  7. 【poj2409】Let it Bead Polya定理

    题目描述 用 $c$ 种颜色去染 $r$ 个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $r·c\le 32$ . 题解 Polya定理 Burnside引理 ...

  8. poj2409:Let it Bead(置换群 polya定理)

    题目大意:长度为n的项链,要染m种颜色,可以通过旋转或翻转到达的状态视为同一种,问有多少种染色方案. 学了一波polya定理,发现很好理解啊,其实就是burnside定理的扩展. burnside定理 ...

  9. poj2409(polya 定理模板)

    题目链接:http://poj.org/problem?id=2409 题意:输入 m, n 表示有 m 种颜色,要构造一个长度为 n 的手环,旋转和对称的只算一种,问能组成多少个不同的手环. 思路: ...

随机推荐

  1. angular启动过程分析

    启动过程 步骤一 用自执行函数在代码完成加载后立即执行 function(window, document, undefined) 在window上暴露一个唯一的全局对象angular,Line250 ...

  2. 正则-匹配获取url参数

    1.根据指定参数名获取参数值 A页面向连接到B页面的url为: http://www.189dg.com/ajax/sms_query.ashx?action=smsdetail&sid=22 ...

  3. 性能测试工具--SIEGE安装及使用简介

    官方网站http://www.joedog.org/ 概述 Siege是一个多线程http负载测试和基准测试工具.它有3种操作模式: 1) Regression (when invoked by bo ...

  4. mvc4 整合nhibernate3.0配置

    鉴于大家都在解决问题或是学习新东西的时候,并不关注是谁又是谁帮你解决了问题,所有这里为自己做下宣传,我为自己代言. 首先介绍下我的开发环境是vs2010旗舰版,nhibernate采用的是3.0版本. ...

  5. java获取当前时间

    /////////////////获取时间方法一////////////////////////////// java.util.Date uDate=new java.util.Date(); Sy ...

  6. IOS NSUserDefaults 讲解 用法

    IOS NSUserDefaults 讲解 用法    NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults ...

  7. ios app 开发中ipa重新签名步骤介绍-备

    作为一个app应用程序开发者,在app应用程序在苹果商店上架前总需要将安装包安装到ios机器上进行测试,这个时候我们就需要打包in house版本的ipa了,打包in house实际上是一个将ipa应 ...

  8. 无线wifi-PJ-之在开启WPS下使用reaver

    PJ简单解释: PIN码分前4和后4,先破前4只有最多一万个组合,破后4中的前3只有一千个组 合,一共就是一万一千个密码组合. 10的4次方+10的3次方=11000个密码组合. 当reaver确定前 ...

  9. unity中的[xxxxxx]特性(Attributes)

    [SerializeField] 在Inspector版面中显示非public属性,并且序列化:若写在public前面,等于没写. [Obsolete("调用提示信息")] [No ...

  10. rsyslog 同步丢失问题

    <pre name="code" class="html">[root@dr-mysql01 zjzc_log]# wc -l localhost_ ...