题意:

给你三种颜色的珠子,每次给你N,问在旋转,翻转之后视作相同的情况下,能组成多少种不同的项链。

思路:

让我们借这道题拯救一下我对POLYA定理的理解...

sigma(m^(gcd(i,n)))

以上是在旋转的时候计数的和,其中m是颜色的数量,n是项链的长度。

一下考虑翻转的情况:

当n是偶数的时候,

有n/2种情况循环节的数量是n/2+1,有n/2种情况是n/2。

当n是奇数的时候,

有n种情况是循环节的数量是n/2+1

别忘了最后要除以循环节总的种类数!!!

坑点:

这题n可能等于0...

RE了一次...

#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
long long quick_pow(long long a,long long b){
long long rel=;
while(b){
if(b&)rel*=a;
a=a*a;
b>>=;
}
return rel;
}
int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
int main()
{
int n;
scanf("%d",&n);
while(n>=){
if(n==){printf("0\n");scanf("%d",&n);continue;}
long long ans=;
for(int i=;i<=n;i++){
ans+=quick_pow(,gcd(n,i));
}
if(n&){
ans+=n*quick_pow(,n/+);
}
else{
ans+=n/*quick_pow(,n/+);
ans+=n/*quick_pow(,n/);
}
printf("%I64d\n",ans/n/);
scanf("%d",&n);
}
}

最新文章

  1. net TreeView 递归
  2. python 传递结构体指针到 c++ dll
  3. C/S打包(图文)
  4. 高效的Nginx
  5. 绿荫工作室爱选修app内测
  6. BOM 之 location
  7. BZOJ 1022 小约翰的游戏
  8. MATLAB制作符合IEEE标准的图插入Latex
  9. iOS tableView刷新
  10. [Swift]LeetCode58. 最后一个单词的长度 | Length of Last Word
  11. LeetCode算法题-Binary Tree Tilt(Java实现)
  12. 739. Daily Temperatures &amp;&amp; 单调栈 &amp;&amp; Python collections deque
  13. iptables 初见 第一章
  14. 清空visual studio 开发缓存
  15. Mysql 账号过期问题
  16. python知识合集
  17. SharePoint 2013 EventHanlder工具
  18. 12-5 张雨RTCM3数据解码解不出的原因
  19. makefile特殊符号介绍
  20. Carte作为Windows服务

热门文章

  1. Android 广播大全 Intent Action 事件
  2. Jquery获得下拉框的值
  3. ORA-27101:shared memory realm does not exist的问题
  4. 【jmeter】关联-正则表达和xpath
  5. 10 程序员必备:Linux日常维护命令
  6. 【转】Java集合框架综述
  7. php 自带函数
  8. 【转】 SQL 2005 try catch
  9. Android的CursorLoader用法小结
  10. Spark on Yarn年度知识整理