poj2409
用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的更多相关文章
- 【poj2409】 Let it Bead
http://poj.org/problem?id=2409 (题目链接) 题意 一个n个珠子的项链,每个珠子可以被染成t种颜色.项链可以翻转和旋转,问不同的染色方案数. Solution Pólya ...
- 【POJ2409】Let it Bead Pólya定理
[POJ2409]Let it Bead 题意:用$m$种颜色去染$n$个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $n,m$很小就是了. 题解:在旋转$i ...
- [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)其循环节数为 ...
- poj 1286&&poj2409 Polya计数 颜色匹配
#include <iostream> #include <math.h> using namespace std; #define LL long long LL gcd(L ...
- poj2409 & 2154 polya计数+欧拉函数优化
这两个题都是项链珠子的染色问题 也是polya定理的最基本和最经典的应用之一 题目大意: 用m种颜色染n个珠子构成的项链,问最终形成的等价类有多少种 项链是一个环.通过旋转或者镜像对称都可以得到置换 ...
- poj2409 Let it Bead
Let it Bead Time Limit: 1000MS M ...
- 【poj2409】Let it Bead Polya定理
题目描述 用 $c$ 种颜色去染 $r$ 个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $r·c\le 32$ . 题解 Polya定理 Burnside引理 ...
- poj2409:Let it Bead(置换群 polya定理)
题目大意:长度为n的项链,要染m种颜色,可以通过旋转或翻转到达的状态视为同一种,问有多少种染色方案. 学了一波polya定理,发现很好理解啊,其实就是burnside定理的扩展. burnside定理 ...
- poj2409(polya 定理模板)
题目链接:http://poj.org/problem?id=2409 题意:输入 m, n 表示有 m 种颜色,要构造一个长度为 n 的手环,旋转和对称的只算一种,问能组成多少个不同的手环. 思路: ...
随机推荐
- memcache实例
<?php class demo { private $str_attr; private $int_attr; public function __get($name) { return $t ...
- 用Set中元素做条件查询
一个老师教许多学生,一个学生被许多老师教,一个学生有好多书,同一种书被许多同学拥有.查询教拥有书"a"的学生的老师: class teacher{ String id; ...
- scrapy1.1入门用例简介-2
写一个小的scrapy project,爬取相关网页内容并保存为.json文件 0.创建project,genspider等. 1.修改items.py,内容如下: 2.修改dmoz.py,内容如下: ...
- 隐藏NGINX服务器名称 和版本号
隐藏NGINX服务器名称: 修改或隐藏服务器名称需要修改源码nginx.h,nginx.h在src/core/目录下 .具体操作如下: 把下面两个宏的值修改为自己设定的值,例如"NGX&qu ...
- MATLAB 常用形态学操作函数
常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...
- 2015年6月股灾永远载入A股史册
之前很奇怪这次牛市行情的暴涨与暴跌,后来发现成交量是以往不可想象的,而这一切的源头就是融资融券,也就是杠杆. 杠杆的作用是无穷的,就像阿基米德说的那样“给我一个支点,我就能撬起地球”. 杠杆是个放大器 ...
- hive 三种启动方式及用途,关注通过jdbc连接的启动
http://blog.csdn.net/a221133/article/details/6734746
- Acdream Mengzhu
http://acdream.info/problem?pid=1006 #include <cstdio> #include <cmath> #include <cst ...
- API认证方法一览
Open api authentication Amazon DigitalOcean Webchat Weibo QQ Amazon Web Services HMAC Hash Message A ...
- cf500D New Year Santa Network
D. New Year Santa Network time limit per test 2 seconds memory limit per test 256 megabytes input st ...