博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5278 PowMod 数论公式推导
阅读量:5226 次
发布时间:2019-06-14

本文共 1607 字,大约阅读时间需要 5 分钟。

题意:中文题自己看吧

分析:这题分两步

        第一步:利用已知公式求出k;

        第二步:求出k然后使用欧拉降幂公式即可,欧拉降幂公式不需要互质(第二步就是BZOJ3884原题了)

        求k的话就需要构造了(引入官方题解)

       

         然后就求出k了,我就很奇怪为什么是这个式子,然后就网上搜啊搜

         找到了一个推导(看完了以后恍然大悟)

         推导链接:http://blog.csdn.net/wust_zzwh/article/details/51966450

         高度仰慕数学好的巨巨

吐槽:这个题n是无平方因子,然后就要往欧拉函数是积性函数的性质上想,但是主要是还是要多做数学题

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;const int N = 1e7+5;const int mod=1e9+7;bool check[N];LL phi[N],prime[N>>1],tot;LL sum[N],k,n,m,p;LL qpow(LL a,LL b,LL mod){ LL ret=1; while(b){ if(b&1)ret=(ret*a)%mod; a=(a*a)%mod; b>>=1; } return ret;}void getphi(){ phi[1]=1;tot=0; for(int i=2;i<=N-5;++i){ if(!check[i]){ prime[++tot]=i; phi[i]=i-1; } for(int j=1;j<=tot;++j){ if(i*prime[j]>N-5)break; check[i*prime[j]]=true; if(i%prime[j]==0){ phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } for(int i=1;i<=N-5;++i){ sum[i]=(sum[i-1]+phi[i])%mod; }}LL solve(LL n,LL m){ if(m==0)return 0; if(m==1)return phi[n]; if(n==1)return sum[m]; if(phi[n]==n-1){ return (phi[n]*solve(1,m)%mod+solve(n,m/n))%mod; } for(int i=1;i<=tot&&prime[i]*prime[i]<=n;++i){ if(n%prime[i])continue; return (phi[prime[i]]*solve(n/prime[i],m)%mod+solve(n,m/prime[i]))%mod; }}LL f(LL x){ if(x==1)return 0; return qpow(k,f(phi[x])+phi[x],x);}int main(){ getphi(); while(~scanf("%I64d%I64d%I64d",&n,&m,&p)){ k=solve(n,m); printf("%I64d\n",f(p)); } return 0;}
View Code

 

        

 

转载于:https://www.cnblogs.com/shuguangzw/p/5698158.html

你可能感兴趣的文章
[NOIP2012TG] 洛谷 P1080 国王游戏
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
有道词典_每日一句_2019/07
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
关于ajax回调数据类型为Json,如何获得他的值
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>