【POJ 1286】Necklace of Beads(Polya 定理)
2016-05-22 11:44
537 查看
Necklace of Beads
Beads of red, blue or green colors are connected together into a circular necklace of n beads ( n < 24 ). If the repetitions that are produced by rotation around the center of the circular necklace or reflection to the axis of symmetry are all neglected, how many different forms of the necklace are there? ![]() Input The input has several lines, and each line contains the input data n. -1 denotes the end of the input file. Output The output should contain the output data: Number of different forms, in each line correspondent to the input data. Sample Input 4 5 -1 Sample Output 21 39 Source Xi'an 2002 |
[Discuss]
[题意][一个手镯,用三种颜色图,可以旋转和翻转,求有多少方案。]
【题解】【Polya 定理】
本题可直接代入公式计算
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long p[110],ans,n;
long long gcd(int a,int b)
{
if(!(a%b)) return b;
return gcd(b,a%b);
}
int main()
{
int i,j;
while((scanf("%I64d",&n)==1))
{
if(!n) {printf("0\n"); continue;}
if(n==-1) return 0;
p[0]=1;
for(i=0;i<n;++i) p[i+1]=p[i]*3;
if(!(n%2)) ans=(n/2)*(p[n/2+1]+p[n/2]);
else ans=n*p[n/2+1];
for(i=1;i<=n;++i) ans+=p[gcd(i,n)];
ans/=2*n;
printf("%I64d\n",ans);
}
return 0;
}
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1001
- POJ ACM 1002
- 1611:The Suspects
- POJ1089 区间合并
- POJ 2159 Ancient Cipher
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- POJ1050 最大子矩阵和
- 用单调栈解决最大连续矩形面积问题
- 2632 Crashing Robots的解决方法
- 1573 Robot Motion (简单题)