#include <cstdio>
#define LL long long LL finmo=;
LL fac[][],inv[][];
LL tmp[],rev[];
LL n,g,x,y;
const LL mo[]={,,,}; LL qpow(LL bas,LL pow,LL mo){
LL ret=;
for (;pow;bas*=bas,bas%=mo,pow=pow>>){
if (pow&) ret*=bas,ret%=mo;
}
return(ret);
}//快速幂 LL C(LL t1,LL t2,LL mopo){
if (t2>t1) return();
return((fac[mopo][t1]*inv[mopo][t2])%mo[mopo]*inv[mopo][t1-t2]%mo[mopo]);
}//组合数 LL lucas(int t1,int t2,int mopo){
LL ret=;
while(t1||t2){
ret*=C(t1%mo[mopo],t2%mo[mopo],mopo);ret%=mo[mopo];
t1/=mo[mopo];t2/=mo[mopo];
}
return(ret);
}//lucas定理 LL solve(LL num){
for (int i=;i<=;i++) tmp[i]=lucas(n,num,i);
LL ret=;
for (int i=;i<=;i++)
ret+=tmp[i]*(finmo/mo[i])*rev[i],ret%=finmo-;
return(ret);
}//线性同余方程的解 void exgcd(LL a,LL b,LL &x,LL &y){
if (b==){
x=1LL;y=0LL;return;
}
exgcd(b,a%b,x,y);
LL t=x;x=y;y=t-(a/b)*y;
}//扩展欧几里得 int main(){
scanf("%lld%lld",&n,&g);
for (int i=;i<=;i++){
fac[i][]=;inv[i][]=;
for (int j=;j<mo[i];j++) {fac[i][j]=(fac[i][j-]*j)%mo[i];inv[i][j]=qpow(fac[i][j],mo[i]-,mo[i]);}
}
for (int i=;i<=;i++){
exgcd(finmo/mo[i],mo[i],x,y);
rev[i]=(x%mo[i]+mo[i])%mo[i];
} LL ans=;
for (int i=;i*i<=n;i++)
if (n%i==){
ans+=solve(i);ans%=finmo-;
if (n/i!=i) ans+=solve(n/i),ans%=finmo-;
} LL finans=qpow(g,ans,finmo);
if (g==)printf("0\n");else printf("%lld\n",finans);
}

数学的东西(BZOJ1951)的更多相关文章

  1. JavaScript中的运动数学函数(持续更新)

    经常需要实现JS的动画效果,就会用到如下的一些数学的东西. 二次方运动,从0开始加速: var f=function(t,orgvalue,changevalue,runtime){ var t=t/ ...

  2. 校际联合Contest

    每次开一个坑都像是重新被碾压的预感 最近的新闻,以前很喜欢乔任梁的<复活>...然后他就死了...感觉我再多愁善感一点的话...就要悲伤逆流成河了吧... Contest 09/24(乐滋 ...

  3. You and Your Research(Chinese)

    转自:http://lyxh-2003.iteye.com/blog/434014 这是大科学家Richard Hamming的著名讲演,于1986年在贝尔通讯研究中心给200多名Bellcore的科 ...

  4. 那些年我们学过的PHP黑魔法

    那些年我们学过的PHP黑魔法 提交 我的评论 加载中 已评论 那些年我们学过的PHP黑魔法 2015-04-10 Sco4x0 红客联盟 红客联盟 红客联盟 微信号 cnhonker_huc 功能介绍 ...

  5. 【VB超简单入门】一、写在前面

    每本书的前面总得写点什么,到我这里也自然不能免俗,前言这东西“存在即合理”,所以就随便写一点咯~ 首先这本书是给从未接触过编程的童鞋准备的,由于我学识疏浅,对VB也只是一知半解所以也只能讲一点点最基础 ...

  6. ACM比赛经验

    这篇博客是转别人的,觉得很好,希望能在以后的现场赛中用上:ACM比赛经验 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果, ...

  7. 对cost函数的概率解释

    Likehood函数即似然函数,是概率统计中经常用到的一种函数,其原理网上很容易找到,这里就不讲了.这篇博文主要讲解Likelihood对回归模型的Probabilistic interpretati ...

  8. 从对偶问题到KKT条件

    转自:http://xuehy.github.io/%E4%BC%98%E5%8C%96/2014/04/13/KKT/ 从对偶问题到KKT条件 Apr 13, 2014 对偶问题(Duality) ...

  9. You and your research

    英文版http://www.cs.virginia.edu/~robins/YouAndYourResearch.html 视频版http://www.youtube.com/watch?v=a1zD ...

随机推荐

  1. iOS开发之功能模块--计算高度Demo探究手稿

    本篇记录关于计算文本高度和Label高度的代码,以备后期再探究: 首先是YouXianMing老师的工具类别: NSString+LabelWidthAndHeight.h // // NSStrin ...

  2. 《javascript权威指南》读书笔记——第二篇

    <javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...

  3. Linux iptables配置错误导致ORA-12535 & ORA-12170

    实验环境:       操作系统  : Red Hat Enterprise Linux Server release 5.7 (Tikanga)       数据库版本: Oracle Databa ...

  4. C#winfrom播放器动态加载歌词

    上周我们进行了结业项目答辩,是播放器项目.有一个关于播放器变唱歌边加载歌词的方法特别有意思,像酷狗那样子歌词和歌曲同步滚播的样子. 这里的工具是Visual Studio 2013,使用语言是C#和. ...

  5. 使用管道符在PowerShell中进行各种数据操作

    最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下. 无论是在Linux中写Bash脚本还是在Window上 ...

  6. Mysql zip包在Windows上安装配置

    环境:Windows7 64位系统.mysql-5.7.16-winx64.zip 1.在mysql官网上下载所需的mysql zip包,如我下载的是mysql-5.7.16-winx64.zip: ...

  7. jdbc连接数据库的步骤 (转)

    1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  classN ...

  8. chrome 浏览器的预提取资源机制导致的一个请求发送两次的问题以及ClientAbortException异常

    调查一个 pdf 打印报错: ExceptionConverter: org.apache.catalina.connector.ClientAbortException: java.net.Sock ...

  9. linux shell for循环使用命令中读取到的值实例

    #!/bin/bash file="states" for state in `cat $file` do echo "Visit beautiful $state&qu ...

  10. 利用varnish做Discuz论坛的缓存服务器

    实验背景:公司有一台BBS服务器,用的是LNMP的架构搭建的.正好手头有一台空闲的虚拟机,于是想着给BBS前端加一台缓存服务器.于是选定了varnish,搜了很多教程,跌跌撞撞的完成了配置.这其中很多 ...