poj 1286 Necklace of Beads【polya定理+burnside引理】
2024-09-30 20:45:57
和poj 2409差不多,就是k变成3了,详见
还有不一样的地方是记得特判n==0的情况不然会RE
#include<iostream>
#include<cstdio>
using namespace std;
long long n,ans;
long long ksm(long long a,long long b)
{
long long r=1;
while(b)
{
if(b&1)
r=r*a;
a=a*a;
b>>=1;
}
return r;
}
long long gcd(long long a,long long b)
{
return !b?a:gcd(b,a%b);
}
int main()
{
while(scanf("%lld",&n)&&n!=-1)
{
if(!n)
{
puts("0");
continue;
}
ans=(n&1)?ksm(3,n/2+1)*n:ksm(3,n/2+1)*n/2+ksm(3,n/2)*n/2;
for(int i=1;i<=n;i++)
ans+=ksm(3,gcd(i,n));
printf("%lld\n",ans/2/n);
}
return 0;
}
最新文章
- .NET开源插件内核
- uexGaodeMap插件Android接入指引
- Windows 8的本地化应用程序清单
- CollectionFramework
- python2.7处理https稍微好点的办法(坑得一笔)
- 找不到所需要的ndbm.h头文件
- Spark Streaming揭秘 Day34 解析UI监听模式
- 使用Nginx+Keepalived组建高可用负载平衡Web server集群
- JS 乱记
- 【USACO 3.2.2】二进制数01串
- 【JSP引入报错】--package javax.servlet.jsp does not exist
- 微信小程序教学第三章第四节(含视频):小程序中级实战教程:下拉更新、分享、阅读标识
- 细说Django的admin
- ebe
- Complex类的实现
- Thrift关键字
- 迭代器和增强型for循环
- Floyd判圈算法 UVA 11549 - Calculator Conundrum
- linux mint 19安装 kvm 软件包
- 【week12】psp