数学的东西(BZOJ1951)
#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)的更多相关文章
- JavaScript中的运动数学函数(持续更新)
经常需要实现JS的动画效果,就会用到如下的一些数学的东西. 二次方运动,从0开始加速: var f=function(t,orgvalue,changevalue,runtime){ var t=t/ ...
- 校际联合Contest
每次开一个坑都像是重新被碾压的预感 最近的新闻,以前很喜欢乔任梁的<复活>...然后他就死了...感觉我再多愁善感一点的话...就要悲伤逆流成河了吧... Contest 09/24(乐滋 ...
- You and Your Research(Chinese)
转自:http://lyxh-2003.iteye.com/blog/434014 这是大科学家Richard Hamming的著名讲演,于1986年在贝尔通讯研究中心给200多名Bellcore的科 ...
- 那些年我们学过的PHP黑魔法
那些年我们学过的PHP黑魔法 提交 我的评论 加载中 已评论 那些年我们学过的PHP黑魔法 2015-04-10 Sco4x0 红客联盟 红客联盟 红客联盟 微信号 cnhonker_huc 功能介绍 ...
- 【VB超简单入门】一、写在前面
每本书的前面总得写点什么,到我这里也自然不能免俗,前言这东西“存在即合理”,所以就随便写一点咯~ 首先这本书是给从未接触过编程的童鞋准备的,由于我学识疏浅,对VB也只是一知半解所以也只能讲一点点最基础 ...
- ACM比赛经验
这篇博客是转别人的,觉得很好,希望能在以后的现场赛中用上:ACM比赛经验 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果, ...
- 对cost函数的概率解释
Likehood函数即似然函数,是概率统计中经常用到的一种函数,其原理网上很容易找到,这里就不讲了.这篇博文主要讲解Likelihood对回归模型的Probabilistic interpretati ...
- 从对偶问题到KKT条件
转自:http://xuehy.github.io/%E4%BC%98%E5%8C%96/2014/04/13/KKT/ 从对偶问题到KKT条件 Apr 13, 2014 对偶问题(Duality) ...
- You and your research
英文版http://www.cs.virginia.edu/~robins/YouAndYourResearch.html 视频版http://www.youtube.com/watch?v=a1zD ...
随机推荐
- 如何调用外部的Web API
Uri uri = new Uri(url + "?" + postData); System.Net.HttpWebRequest request = (System.Net.H ...
- ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave由于鼠标移动速度过快导致问题解决办法
记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部 ...
- eclipse — Failed to load the JNI shared library”……\jvm.dll问题原因以及解决方案
首先上一张出现问题的图片: 出现这个问题一般是你的jdk和eclipse不是同一位的,比如你的jdk是32位的但是eclipse下载的是64位的就会导致这种问题. 解决方案:把两者都换为32或者64位 ...
- app上架流程的整理
app的上架流程 一.准备工作 首先需要有开发者账号,企业级的账号是299$,个人开发者账号是99$,没有的话可以登录http://developer.apple.com/自行申请 假如你已经有账号了 ...
- IOS开发基础知识--碎片7
三十八:各个版本IPHONE分辨率及图片的实现原理 desert@2x : iPhone 4s ( x ) desert-568h@2x : iPhones , 5C and 5S ( x ) des ...
- 全局响应MotionEvent
遇到这样一个需求:应用无论处于哪个view controller,摇动手机,都能够出发某一方法. 能够想到的思路就是用苹果封装好的“MotionEvent”,但是如果简单的把一下代码加到某一view ...
- 【转】Java并发编程:深入剖析ThreadLocal
来自: http://www.importnew.com/17849.html 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理.首先,本 ...
- 【转】jquery 中scrollTop在Firefox下不起作用
原文链接:http://stackoverflow.com/questions/8149155/animate-scrolltop-not-working-in-firefox Animate scr ...
- 烂泥:Postfix邮件服务器搭建之软件安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...
- nodejs缓冲模块buffer相关资料
buffer模块的详细使用教程 浅析nodejs的buffer类 深入浅出NodeJS--Buffer Node Buffer/Stream 内存策略分析