POJ 1286 Necklace of Beads(polya)
来源:互联网 发布:mac版炉石传说打不开 编辑:程序博客网 时间:2024/05/17 20:28
Description
用三种颜色的珠子围成长度为n的项链,旋转和翻转相同算同一种方案,问一共有多少种不同的方案
Input
多组用例,每组用例占一行为一整数n,以-1结束输入(n<24)
Output
输出方案数
Sample Input
4
5
-1
Sample Output
21
39
Solution
polya,令m=3表示颜色数,先考虑旋转,有n种置换,旋转k个元素后循环节即轮换数为gcd(k,n),故方案数为,然后是翻转,对称轴显然为直径,当n为偶数时有两种对称轴,一种过两点,另一种过两个中点,第一种对称轴有n/2个,翻转180度的轮换数为n/2+1,第二种对称轴也有n/2个,翻转180度的轮换数为n/2,方案数为n/2*m^(n/2)+n/2*m^(n/2+1);当n为奇数时对称轴只有一种,即过一点以及一个中点,共n个,翻转180度的轮换数为n/2,方案数为n*m^(n/2),所以翻转也有n种置换,总置换数为2*n。
Code
#include<cstdio>#include<iostream>#include<cmath>using namespace std;typedef long long ll;int gcd(int a,int b){ if(b==0)return a; return gcd(b,a%b);}int main(){ int n,m=3; while(scanf("%d",&n),~n) { if(!n) { printf("0\n"); continue; } ll ans=0; for(int i=1;i<=n;i++) ans+=pow(1.0*m,1.0*gcd(i,n)); if(n&1)ans+=n*pow(1.0*m,1.0*(n/2+1)); else ans+=n/2*pow(1.0*m,1.0*n/2)+n/2*pow(1.0*m,1.0*(n/2+1)); ans/=2*n; printf("%lld\n",ans); } return 0;}
0 0
- POJ 1286 Necklace of Beads(polya)
- POJ 1286 Necklace of Beads (Polya)
- POJ--1286[Necklace of Beads] Polya定理
- poj 1286 Necklace of Beads -----polya计数
- POJ 1286 Necklace of Beads Polya定理
- poj 1286 Necklace of Beads(Polya定理)
- poj 1286 Necklace of Beads (polya)
- poj 1286 Necklace of Beads polya计数
- poj 1286 Necklace of Beads (polya)
- poj 1286 Necklace of Beads 【polya计数】
- POJ 1286-Necklace of Beads(Polya计数)
- POJ 1286 Necklace of Beads(Polya原理)
- POJ 1286 Necklace of Beads Polya .
- POJ 1286 Necklace of Beads(Polya简单应用)
- POJ 题目1286 Necklace of Beads(Polya定理)
- poj Necklace of Beads 1286 (polya定理)置换群
- 【POJ 1286】Necklace of Beads(polya定理)
- poj 1286 Necklace of Beads(polya 定理)
- IOS 开发 证书显示 此证书签发者无效 解决办法
- redis java开发例子
- 时间差、星期、时间显示、学习记录
- 【LeetCode】002 Single Number 寻找单身狗
- 机器学习中的相似性度量
- POJ 1286 Necklace of Beads(polya)
- ORACLE SQL整理笔记
- AFNetworking Post 出错 Code=-1011 Request failed: bad request (400)
- Java 日期时间
- 【c#学习笔记】 基础篇
- android SimpleOnGestureListener详解
- tomcat启动为什么 写入这句话 -Dspring.profiles.active=dev
- InputStreamReader和BufferedReader的理解与用法
- 【LeetCode】003 Unique Paths 唯一路线