【bzoj1951】: [Sdoi2010]古代猪文

因为999911659是个素数

欧拉定理得

然后指数上中国剩余定理

然后分别lucas定理就好了

注意G==P的时候的特判

 /* http://www.cnblogs.com/karl07/ */
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define ll long long const ll P=;
const ll p1[] = {, , , , };
const ll N=;
ll g,n,cnt=;
ll fac[N+],ifac[N+];
ll p[N],ans[]; ll Q_pow(ll a,ll b,ll p){
ll ans=;
while (b){
if (b&) ans=ans*a%p;
a=a*a%p;
b=(b>>);
}
return ans;
} void FAC(ll p){
ifac[]=fac[]=;
for (int i=;i<=N;i++) fac[i]=fac[i-]*i%p,ifac[i]=Q_pow(fac[i],p-,p);
} ll C(ll n,ll m,ll p){
if (m>n) return ;
return fac[n]*ifac[m]%p*ifac[n-m]%p;
} ll lucas(ll n,ll m,ll p){
if (m==) return ;
return lucas(n/p,m/p,p)*C(n%p,m%p,p)%p;
} void fj(ll x){
for (int i=;i*i<=x;i++){
if (x%i==){
p[++cnt]=i;
if (i*i!=x) p[++cnt]=n/i;
}
}
} ll gcd(ll a,ll b){return b ? gcd(b,a%b) : a;} void ex_gcd(ll a,ll b,ll &x,ll &y){
if (b==){x=;y=;return;}
ex_gcd(b,a%b,y,x);
y-=x*(a/b);
} ll China(){
ll a0=ans[],p0=p1[];
for (int i=;i<=;i++){
ll x,y,g=gcd(p0,p1[i]);
ex_gcd(p0,p1[i],x,y);
x=(x*(ans[i]-a0)%p1[i]+p1[i])%p1[i];
a0=a0+x*p0;
p0=p0/g*p1[i];
}
return a0;
} void work(){
for(int i=;i<=;i++){
FAC(p1[i]);
for (int j=;j<=cnt;j++){
ans[i]=(ans[i]+lucas(n,n/p[j],p1[i]))%p1[i];
}
}
printf("%lld\n",Q_pow(g,China(),P));
} int main(){
scanf("%lld%lld",&n,&g);
if (g==P) {puts(""); return ;}
fj(n);
work();
return ;
}
  

各种zz的错误。。调了一年

而且跑的巨慢无比。。

【bzoj1951】: [Sdoi2010]古代猪文 数论-中国剩余定理-Lucas定理的更多相关文章

  1. BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】

    题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...

  2. bzoj 1951: [Sdoi2010]古代猪文 【中国剩余定理+欧拉定理+组合数学+卢卡斯定理】

    首先化简,题目要求的是 \[ G^{\sum_{i|n}C_{n}^{i}}\%p \] 对于乘方形式快速幂就行了,因为p是质数,所以可以用欧拉定理 \[ G^{\sum_{i|n}C_{n}^{i} ...

  3. bzoj1951 [Sdoi2010]古代猪文 ——数论综合

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意就是要求 G^( ∑(k|n) C(n,k) ) % p,用费马小定理处理指数,卢 ...

  4. 【BZOJ1951】古代猪文(CRT,卢卡斯定理)

    [BZOJ1951]古代猪文(CRT,卢卡斯定理) 题面 BZOJ 洛谷 题解 要求什么很显然吧... \[Ans=G^{\sum_{k|N}{C_N^k}}\] 给定的模数是一个质数,要求解的东西相 ...

  5. BZOJ 1951: [Sdoi2010]古代猪文( 数论 )

    显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...

  6. BZOJ1951 [Sdoi2010]古代猪文 中国剩余定理 快速幂 数论

    原文链接http://www.cnblogs.com/zhouzhendong/p/8109156.html 题目传送门 - BZOJ1951 题意概括 求 GM mod 999911659 M=∑i ...

  7. BZOJ1951[SDOI2010]古代猪文

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  8. [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  9. BZOJ1951:[SDOI2010]古代猪文(Lucas,CRT)

    Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...

随机推荐

  1. 【转】onclick事件与href='javascript:function()'的区别

    href='javascript:function()'和onclick能起到同样的效果,一般来说,如果要调用脚本还是在onclick事件里面写代码,而不推荐在href='javascript:fun ...

  2. 渗透测试框架-Fsociety

    下载项目并赋予权限,打开 ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clone https://github.com/Manisso/fsociety ┌─[root ...

  3. 2015.5.11 string与byte[]相互转换

    string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 反过来,byte[]转成stri ...

  4. 第五章 Java中锁

    Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁).在Lock接口出现之前,Java程序 ...

  5. linux进程的软中断通信

    linux进程的软中断通信 要求 实现软中断通信的程序 使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上发出的中断信号(即按delete键),当父进程接收到这两个 ...

  6. 【转】TinyMCE(富文本编辑器)

    效果预览:http://www.tinymce.com/tryit/full.php [转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 转自:http://www.cnblogs.co ...

  7. ActiveMQ (三) Spring整合JMS入门

    Spring整合JMS入门 前提:安装好了ActiveMQ  ActiveMQ安装 Demo结构:   生产者项目springjms_producer: pom.xml <?xml versio ...

  8. java线程的三种实现方式

    线程实现的三种种方式: 一个是继承Thread类,实现run()方法: 一个是实现Runnable接口,实现run()方法: 一个是实现Callable接口,实现call()方法:该方式和实现Runn ...

  9. 第6章 使用springboot整合netty搭建后台

    我们不会去使用自增长的id,在现阶段的互联网开发过程中,自增长的id是已经不适用了.在未来随着系统版本的迭代,用户数量的递增,肯定会做分库分表,去做一些相应的切分.在这个时候我们就需要有一个唯一的id ...

  10. PCL—关键点检测(rangeImage)低层次点云处理

    博客转载自:http://www.cnblogs.com/ironstark/p/5046479.html 关键点又称为感兴趣的点,是低层次视觉通往高层次视觉的捷径,抑或是高层次感知对低层次处理手段的 ...