HDU 5728 PowMod
来源:互联网 发布:淘宝抠图出来衣服 编辑:程序博客网 时间:2024/06/04 19:51
Description
Declare:
find:
There are infinite number of
Solution
比赛时候没推出来。。
下面那个很好搞,和BZOJ3884一样咯,递归搞定
关键是上面
首先令
因为
则可以得到
关于上面这个式子的推导:
对于那些和
对于那些和
又
于是式
于是
当然,关于之前那个
题解给出一个公式
没有欧拉公式的互素的限制!!!
但是好像有其他限制:
还有证明
然后在这道题里
总之有了这个公式后那个BZOJ3884变成了递归入门题PoPoQQQ大爷,我绝无冒犯您的意思。。
数论还是很(ao)有(miao)意(chong)思(chong)的
Code
#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>using namespace std;const int M=1e7+5;const int P=1e9+7;bool mark[M];int prime[M],phi[M],sum[M],t;inline int Mod(int b){return b>=P?b-P:b;}inline void pret(){ phi[1]=1; for(int i=2;i<M;++i){ if(!mark[i])prime[t++]=i,phi[i]=i-1; for(int j=0;j<t&&1ll*prime[j]*i<M;++j){ mark[i*prime[j]]=1; if(i%prime[j]==0){ phi[i*prime[j]]=phi[i]*prime[j]; break; } phi[prime[j]*i]=phi[i]*(prime[j]-1); } } for(int i=1;i<M;++i) sum[i]=Mod(sum[i-1]+phi[i]);}inline int work(int n,int m){ if(n==1)return sum[m]; if(m==1)return phi[n]; if(m<1)return 0; for(int i=0;prime[i]*prime[i]<=n;++i){ if(n%prime[i]==0) return Mod(1ll*phi[prime[i]]*work(n/prime[i],m)%P+work(n,m/prime[i])); } return Mod(1ll*phi[n]*work(1,m)%P+work(n,m/n));}inline int Mod_Pow(int x,int a,int mod){ int res=1; for(int i=0;(1ll<<i)<=a;++i){ if(a&1<<i)res=1ll*res*x%mod; x=1ll*x*x%mod; } return res;}int n,m,p,k;inline int gao(int mod){ if(mod==1)return 0; int s=gao(phi[mod]); return Mod_Pow(k,s+phi[mod],mod);}int main(){ for(pret();cin>>n>>m>>p;){ k=work(n,m); cout<<gao(p)<<endl; } return 0;}
- HDU 5728 PowMod
- HDU 5728 PowMod
- hdu 5728 PowMod
- HDU 5728 PowMod
- 【HDU】5728 PowMod
- HDU 5728 PowMod
- hdu 5728 PowMod 数论
- 2016多校联赛 hdu 5728 PowMod
- HDU 5728 PowMod 欧拉函数 递归
- HDU 5728 PowMod(数论+递归)
- 2016多校第一场 1006 hdu 5728 PowMod
- (HDU 5728)2016 Multi-University Training Contest 1 PowMod(数论)
- HDU 5728 PowMod (欧拉函数+指数循环节)
- HDU 5728 PowMod(数论,欧拉函数的各种性质)
- 欧拉定理——PowMod ( HDU 5728 )(2016 Multi-University Training Contest 1 1006)
- [HDU 5728] PowMod (欧拉函数的积性+欧拉公式降幂+欧拉筛)
- HDU5728 PowMod
- HDU5728 PowMod
- python chr()和ord()函数
- jQuery Mobile 表单基础
- HTML5 表单新增元素与属性
- 什么是身份管理
- 匈牙利算法来找最多的没有弱化的!!!!但是初始化那块不知道为什么换了个地方就re。。。尴尬
- HDU 5728 PowMod
- Python windows下获取MAC地址的一种方法(转)
- HDU 5729 Rigid Frameworks (from: 2016 Multi-University Training Contest)
- Reference Or Value pass in python
- C++不是类型安全的语言
- javascript jquery對form元素的常見操作
- sun.misc.unsafe类的使用
- 【杭电1862】excel排序
- Oracle常见错误:ORA-01403 的根本原因和解决方案