Description

"Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you can deduce from the company name, their business is beads. Their PR department found out that customers are interested in buying colored bracelets. However, over 90 percent of the target audience insists that the bracelets be unique. (Just imagine what happened if two women showed up at the same party wearing identical bracelets!) It's a good thing that bracelets can have different lengths and need not be made of beads of one color. Help the boss estimating maximum profit by calculating how many different bracelets can be produced.A bracelet is a ring-like sequence of s beads each of which can have one of cdistinct colors. The ring is closed, i.e. has no beginning or end, and has no direction. Assume an unlimited supply of beads of each color. For different values of s and c, calculate the number of different bracelets that can be made.

给定颜色种数和环上的珠子总数,问有多少种染色方案(通过旋转和翻转相同的算同一种)。

Input

Every line of the input defines a test case and contains two integers:

the number of available colors c followed by the length of the bracelets s.

Input is terminated by c = s = 0.

Otherwise, both are positive, and, due to technical difficulties in the bracelet-fabrication-machine, cs <= 32,

i.e. their product does not exceed 32.

Output

For each test case output on a single line the number of unique bracelets.

The figure below shows the 8 different bracelets that can be made with 2 colors and 5 beads.

Sample Input

1 1

2 1

2 2

5 1

2 5

2 6

6 2

0 0

Sample Output

1

2

3

5

8

13

21


polya置换的裸题了,考虑旋转,我们枚举所有可能的旋转方式,所以得到的循环节个数为gcd(i,n),因此答案为\(\sum\limits_{i=1}^{n} c^{gcd(n,i)}\)

再考虑一下翻转,我们分奇数和偶数进行讨论,如果是奇数,那么不论如何找对称轴,都必定会形成\(\frac{n}{2}+1\)个循环节,再乘上\(n\)即可;如果是偶数,那么就会有\(\frac{n}{2}\)和\(\frac{n-2}{2}+2\)两种循环节情况,然后每种情况各占\(\frac{n}{2}\)条对称轴

最后把答案除一下置换总数\(2*n\)即可

/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f7f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
inline int read(){
int x=0,f=1;char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;
for (;ch>='0'&&ch<='9';ch=getchar()) x=(x<<1)+(x<<3)+ch-'0';
return x*f;
}
inline void print(int x){
if (x>=10) print(x/10);
putchar(x%10+'0');
}
int gcd(int a,int b){return !b?a:gcd(b,a%b);}
int mlt(int a,int b){
int res=1;
for (;b;b>>=1,a=a*a) if (b&1) res=res*a;
return res;
}
int main(){
while (true){
int m=read(),n=read(),ans=0;
if (!n&&!m) break;
for (int i=1;i<=n;i++) ans+=mlt(m,gcd(n,i));
if (n&1) ans+=n*mlt(m,n/2+1);
else ans+=(mlt(m,n/2+1)+mlt(m,n/2))*(n>>1);
printf("%d\n",ans/(2*n));
}
return 0;
}

[ZOJ1961]Let it Bead的更多相关文章

  1. 百练_2409 Let it Bead(Polya定理)

    描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ca ...

  2. poj 2049 Let it Bead(polya模板)

      Description Cannery Row percent of the target audience insists that the bracelets be unique. (Just ...

  3. poj2409 Let it Bead

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

  4. POJ1975 Median Weight Bead floyd传递闭包

    Description There are N beads which of the same shape and size, but with different weights. N is an ...

  5. POJ 2409 Let it Bead(polya裸题)

    题目传送:http://poj.org/problem?id=2409 Description "Let it Bead" company is located upstairs ...

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

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

  7. POJ-1975 Median Weight Bead(Floyed)

    Median Weight Bead Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3162 Accepted: 1630 De ...

  8. 珍珠 Median Weight Bead 977

    描述 There are N beads which of the same shape and size, but with different weights. N is an odd numbe ...

  9. Median Weight Bead(最短路—floyed传递闭包)

    Description There are N beads which of the same shape and size, but with different weights. N is an ...

随机推荐

  1. 一次mysql 优化 (Using temporary ; Using filesort)

    遇到一个SQL执行很慢 SQL 如下: SELECT ... FROM tableA WHERE time >= 1492044535 and time <= 1492046335 GRO ...

  2. MySQL入门笔记 - 视图

    参考书籍<MySQL入门很简单> 1.视图定义 视图是从一个或者多个表中导出来的虚拟的表,透过这个窗口可以看到系统专门提供的数据,使用户可以只关心对自己有用的数据,方便用户对数据操作,同时 ...

  3. Win7 Windows Update更新的文件默认在哪个位置

    C:\Windows\SoftwareDistribution\download    

  4. vue - 官方 - 上手

    Vue和其它框架一样,有用CDN或本地JavaScript框架,国内我推荐 bootstrap cdn. 为什么很多人选择CDN呢? CDN:内容分发网络(不同区域不同服务器,更快),减少本地服务器压 ...

  5. Hybrid App适配Android注意点

    近期把做好的ipad HTML5混合应用适配到android上,发现android的webview比 iPad差太多了,android4.4因为升级到chromium.和chrome内核一致,全部问题 ...

  6. smartfoxserver扩展里面过滤聊天的不合法字符

    http://blog.csdn.net/yc7369/article/details/35567105 近期做手游客户要求加上一个聊天功能.事实上嘛,个人认为这个聊天功能比較鸡肋,这部分差点儿已经有 ...

  7. [LeetCode][Java] Remove Duplicates from Sorted List II

    题意: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct  ...

  8. web 开发之js---页面缓存, jsp 缓存, html 缓存, ajax缓存,解决方法

    有关页面缓存问题.这个问题上网找了好多.但发觉各种解决方法,都彼此分离,没有一篇统一的解决方法,本人近日,也遇到了页面缓存的问题,根据网上各页面缓存的解答,做了一个总结. 1.服务器端缓存的问题, 防 ...

  9. MongoDB 数据库的概念以增删改查

    1,MongoDB概念解析: Mongo数据库基本概念是文档,集合,数据库,下表给予介绍 SQL术语概念 MongoDB术语概念 解释/说明 database database 数据库 table c ...

  10. xcode 程序配置 python 解释器嵌入

    1.点击项目->Buid Phases->加号点击 添加RunScript,Shell中写为python路径.一般是/usr/bin/python 2.同样是Build Phases中,L ...