POJ 2154
这题的时间卡的。。。。
必须用欧拉来优化,而且要加素数表。最重要是,因为最后结果要/n,而数据很大,所以,必须在之前就先/n了,否则会爆数据。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#define LL __int64
using namespace std; int fact[1000],fp;
bool isprime[35000];
int prime[35000],np; void getprime(){
np=0;
memset(isprime,true,sizeof(isprime));
for(int i=2;i<35000;i++){
if(isprime[i]){
prime[np++]=i;
for(int j=i*i;j<35000;j+=i)
isprime[j]=false;
}
}
} int Power(int a,int b,int m){
int ans=1;
a=a%m;
while(b){
if(b&1) ans=(ans*a)%m;
a=(a*a)%m;
b=b>>1;
}
return ans;
} int Euler(int s){
int res=s;
for(int i=0;i<np&&prime[i]*prime[i]<=s;i++){
if(s%prime[i]==0){
res=res-res/prime[i];
while(s%prime[i]==0)
s=s/prime[i];
}
}
if(s>1)
res=res-res/s;
return res;
} void Burnside(int n,int p){
fp=0;
for(int i=1;i*i<=n;i++){
if(n%i==0){
fact[fp++]=i;
if(n/i!=i)
fact[fp++]=n/i;
}
}
int ans=0;
for(int i=0;i<fp;i++){
ans=(ans+Power(n,fact[i]-1,p)*((Euler(n/fact[i]))%p))%p; //此处是fact[i]-1表明 除以n,这是因为为了MOD P
}
ans%=p;
printf("%d\n",ans);
} int main(){
getprime();
int T,n,p;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&p);
Burnside(n,p);
}
return 0;
}
POJ 2154的更多相关文章
- 【POJ 2154】Color
http://poj.org/problem?id=2154 还是先套上Burnside引理:\[\begin{aligned} ans & =\sum_{i=1}^n n^{(i,n)-1} ...
- poj 2154 Color——带优化的置换
题目:http://poj.org/problem?id=2154 置换的第二道题! 需要优化!式子是ans=∑n^gcd(i,n)/n (i∈1~n),可以枚举gcd=g,则有phi( n/g )个 ...
- poj 2154 Color < 组合数学+数论>
链接:http://poj.org/problem?id=2154 题意:给出两个整数 N 和 P,表示 N 个珠子,N种颜色,要求不同的项链数, 结果 %p ~ 思路: 利用polya定理解~定理内 ...
- poj 2154 Color(polya计数 + 欧拉函数优化)
http://poj.org/problem?id=2154 大致题意:由n个珠子,n种颜色,组成一个项链.要求不同的项链数目.旋转后一样的属于同一种.结果模p. n个珠子应该有n种旋转置换.每种置换 ...
- 组合数学 - 波利亚定理 --- poj : 2154 Color
Color Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7873 Accepted: 2565 Description ...
- [ACM] POJ 2154 Color (Polya计数优化,欧拉函数)
Color Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7630 Accepted: 2507 Description ...
- POJ 2154 【POLYA】【欧拉】
前记: TM终于决定以后干啥了.这几天睡的有点多.困饿交加之间喝了好多水.可能是灌脑了. 切记两件事: 1.安心当单身狗 2.顺心码代码 题意: 给你N种颜色的珠子,串一串长度问N的项链,要求旋转之后 ...
- poj 2154 Color
这是道标准的数论优化的polya题.卡时卡的很紧,需要用int才能过.程序中一定要注意控制不爆int!!!我因为爆intWA了好久=_=…… 题目简洁明了,就是求 sigma n^gcd(i,n):但 ...
- POJ 2154 Color [Polya 数论]
和上题一样,只考虑旋转等价,只不过颜色和珠子$1e9$ 一样的式子 $\sum\limits_{i=1}^n m^{gcd(i,n)}$ 然后按$gcd$分类,枚举$n$的约数 如果这个也化不出来我莫 ...
- POJ 2154 color (polya + 欧拉优化)
Beads of N colors are connected together into a circular necklace of N beads (N<=1000000000). You ...
随机推荐
- Blade - 腾讯开源的构建系统 c/c++编译环境
,Blade是软件project的利器.有助于模块化,模块化的力度控制自如.对于提高系统的可维护性.复杂性的隔离.代码复用的最大化.都有非常大的优点. 2,Blade提供了单元測试的最佳使用方式. 假 ...
- C/C++知识要点5——智能指针原理及自己定义实现
智能指针概述: 智能指针用来管理动态对象.其行为类似于常规指针,重要的差别是:它负责自己主动释放所指向的对象. C++ 11标准库提供两种智能指针:shared_ptr.unique_ptr 差别是: ...
- php+mysql 最简单的留言板
学完了记得动手操作. 測试地址(未过滤) <html> <body> <head><meta http-equiv="Content-Type&qu ...
- Android nomedia 避免图片等资源泄露在系统图库其中
总结 Android nomedia 避免文件泄露在系统图库和系统铃声中 在应用开发中 项目的图片总是被系统的图库收录了 避免图片被系统图库收录的发现有2个方法 第一种针对图片 将 .png为后缀的图 ...
- asp.net web site中reference的version的autoupdate
https://stackoverflow.com/questions/833924/visual-studio-stop-auto-update-on-references This is vali ...
- spark 随机森林算法案例实战
随机森林算法 由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数 ...
- C#中显现串口通信SerialPort类
SerialPort类的常用属性 名 称 说 明 BaseStream 获取 SerialPort 对象的基础 Stream 对象 BaudRate 获取或设置串行波特率 BreakState 获取或 ...
- Jq自定义的方法绑定树结构
1.先上效果图 (借鉴博客) 2.这边不做样式的只做结构 function toTreeData(data) { var pos = {}; var tree = []; var i = 0; wh ...
- User_Login_Register_Shopping 1.0
#!/usr/bin/env python# -*- coding: utf-8 -*-# @File : user_login_register_shopping.py# @Author: Anth ...
- 五步完成一个 VSCode 扩展(插件)开发
第一步: 安装扩展生成器 npm install -g yo generator-code vsce 第二步: 初始化一个 Hello World 扩展 yo code 图来自 CN-VScode-D ...