poj 2154 polya定理+数论知识
来源:互联网 发布:prototype1.6.0.3.js 编辑:程序博客网 时间:2024/06/06 11:49
n个环上的点,用n种颜色染色,模p。
只考虑绕中点的旋转,根据polya定理,答案为:(∑n^gcd(n,i))/n 1<=i<=n;
暴力超时。
我们考虑gcd(n,i)==x,的满足条件的i的个数。 个数设为t,那么这些的和即为 t*(n^x);
gcd(n,i)==x, gcd(n/x,i/x)==1 , 满足条件的i的个数,即为n/x的欧拉函数值。
然后就可以搞了。
质数打表,优化欧拉函数。
#include <iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<algorithm>using namespace std;#define ll long long#define N 50000 //质数范围int prime[100000]; //prime[0]=2,prime[1]=3,prime[2]=5,……void init_prime(){ int i, j; for(i = 2;i <= sqrt(N*1.0); ++i) { if(!prime[i]) for(j = i * i; j < N; j += i) prime[j] = 1; } j = 0; for(i = 2;i <= N; ++i) if(!prime[i]) prime[j++] = i;}int eular(int n){ int ret=1,i,j=0; for (i=0;prime[i]*prime[i]<=n;i++) if (n%prime[i]==0){ n/=prime[i],ret*=prime[i]-1; while (n%prime[i]==0) n/=prime[i],ret*=prime[i]; } if (n>1) ret*=n-1; return ret;}int qpow(int n,int m ,int p){ int ans=1; n%=p; while(m) { if(m&1) ans=ans*n%p; m>>=1; n=n*n%p; } return ans;}int main(){ int t; init_prime(); scanf("%d",&t); while(t--) { int n,p,i; scanf("%d%d",&n,&p); int ans=0; for(i=1;i*i<n;i++) { if(n%i==0) { ans=(ans+eular(i)%p*qpow(n,n/i-1,p)%p+eular(n/i)%p*qpow(n,i-1,p)%p)%p; } } if(i*i==n) { ans=(ans+eular(i)%p*qpow(n,i-1,p)%p)%p; } printf("%d\n",ans); }}
0 0
- poj 2154 polya定理+数论知识
- poj 2154 polya定理+优化
- POJ 2154 Color Polya(Polya定理+欧拉函数)
- poj 2154 Color(polya 定理)
- POJ 2409 Polya定理
- poj 2409 polya定理
- poj 2409 polya定理
- poj 1286 polya定理
- poj 2409 polya定理
- HDU 3547 DIY Cube 数论- Polya定理
- poj-1286&&2409-polya定理
- poj 2409(polya定理模板)
- POJ 2154 Color Polya定理+欧拉函数
- POJ 2154 Color (Polya定理+欧拉函数)
- POJ 2154 Color (Polya定理&欧拉函数)
- POJ 2154 Color Polya定理+欧拉函数优化 -
- poj 2154 Color Polya定理 欧拉函数优化
- POJ 2154-Color(Polya定理-旋转 串项链)
- int _tmain(int argc, _TCHAR* argv[])
- 线程池ThreadPoolExecutor参数设置
- UVa 11428 - Cubes
- Android回调机制(全面深入学习)
- 快速输入java系统用户名和密码
- poj 2154 polya定理+数论知识
- js 控制 Windows Media Player播放列表
- 你会喝汤吗?喝汤八大注意
- Emmet:HTML/CSS代码快速编写神器
- Android自定义View全面总结
- 科大讯飞和neospeech tts哪个更好
- BZOJ 1025 SCOI2009 游戏 动态规划
- hdu 4435 charge-station(几何+bfs)
- ExecutorService线程池