本来以为要套exlucas的,结果不用,码量就少了很多

注:

CRT要  <=0  +=P

区分清楚加减号

码:

#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll p[5]={0,2,3,4679,35617};
ll x,y,a[5],jc[5][50005],i,j,n,g;
void exgcd(ll a,ll b)
{if(!b){x=1,y=0;return ;  }exgcd(b,a%b);ll t=x;  x=y;y=t-(a/b)*y;
}
ll lucas(ll a,ll b,int xh)
{if(a<p[xh]&&b<p[xh]){ll lin=jc[xh][b];exgcd(jc[xh][b-a],p[xh]);lin=((lin*x)+p[xh])%p[xh];exgcd(jc[xh][a],p[xh]);lin=((lin*x)+p[xh])%p[xh];return lin;               }   return lucas(a/p[xh],b/p[xh],xh)*lucas(a%p[xh],b%p[xh],xh)%p[xh];
}
ll CRT()
{
ll  M=999911658;ll ans=0;for(i=1;i<=4;i++){ll Mi=M/p[i];exgcd(Mi,p[i]);x=(x+M)%M;ans=ans+(Mi*x%M*a[i]%M)%M;       }   if(ans<=0)ans+=M;return ans;
}
ll ksm(ll a,ll b)
{ll ans=1;ll P=999911659;while(b){if(b&1)ans=a*ans%P;b=b/2;     a=a*a%P;       }return ans;
}
int main()
{scanf("%lld%lld",&n,&g);jc[1][0]=jc[2][0]=jc[3][0]=jc[4][0]=1;for(i=1;i<=50000;i++){for(j=1;j<=4;j++)jc[j][i]=(jc[j][i-1]*i)%p[j];    }a[1]=a[2]=a[3]=a[4]=0;bool zs=1;
for(i=1;i*i<=n;i++)
{if(n%i)continue;if(i>1)zs=0;for(j=1;j<=4;j++){a[j]=(a[j]+(lucas(i,n,j)+p[j])%p[j])%p[j];}
if(i*i==n)break;for(j=1;j<=4;j++){a[j]=(a[j]+(lucas(n/i,n,j)+p[j])%p[j])%p[j];}
}   printf("%lld",ksm(g,CRT()));
}

bzoj1951 [Sdoi2010]古代猪文 lucas+CRT+exgcd相关推荐

  1. P2480 [SDOI2010]古代猪文 Lucas+CRT合并

    \(\color{#0066ff}{ 题目描述 }\) 猪王国的文明源远流长,博大精深. iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会 ...

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

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

  3. BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]

    1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 2194  Solved: 919 [Submit][Statu ...

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

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

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

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

  6. bzoj1951 [Sdoi2010]古代猪文

    http://www.elijahqi.win/archives/3185 Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿 ...

  7. BZOJ1951: [Sdoi2010]古代猪文

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

  8. bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)

    https://www.lydsy.com/JudgeOnline/problem.php?id=1951 先欧拉降幂 然后模数质因数分解 分别计算组合数的结果,中国剩余定理合并 #include&l ...

  9. 1951: [Sdoi2010]古代猪文

    http://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意:求G^(C(N,N/K))%mod ( K|N) 1951: [Sdoi2010]古代猪 ...

最新文章

  1. Winio驱动在64位windows下无法使用的解决方法
  2. Linux挂载卸载光盘实践
  3. 2010.3.28 OA 项目组工作报告
  4. 打造自己的数据访问层(二)
  5. leader选举的原理
  6. CodeForces - 1288D Minimax Problem(二分+状态压缩)
  7. qemu debug linux内核,在QEMU环境中使用GDB调试Linux内核
  8. STM32的printf函数重定向
  9. Oracle数据库文件路径变更
  10. C++顺序表(模板总结)
  11. 【2020.2.29更新】高通蓝牙芯片QCC3003,QCC3008 学习视频教材
  12. mysql的不等于符号
  13. wmp搭建PHP,教你如何使用WIN7自带的WMP实现媒体共享
  14. Android播放音效
  15. oracle 考试资料,Oracle考试复习题
  16. 教你怎么合理选购LED透明屏_LED透明屏价格影响因素
  17. 浙江省计算机二级题库excel,2014年浙江省计算机二级题库Excel03.xls
  18. 利用Simulink生成自定义的A2L
  19. 【OpenCV-Python】——Haar人脸检测深度学习人脸检测EigenFaces/FisherFaces/LBPH人脸识别
  20. 使用Python--Matplotlib绘制三维图形

热门文章

  1. 魅族mx四核即将使用android,魅族MX四核智能手机发布
  2. java猜拳游戏代码_猜拳游戏 - java代码库 - 云代码
  3. 基于Matlab的跨孔电磁波\跨孔雷达的直射线追踪(一)
  4. pycharm使用心得
  5. Ajax的简单使用方法
  6. day21 java的数字类
  7. note_maven的概念,作用
  8. 留下考题答案造福我校后来人(考试过后再看,不要抄袭)
  9. myeclipse的电商系统模板_电商市场分析怎么做?3分钟了解程序员必备分析软件...
  10. python编写交互界面查分app_Django项目中model的数据处理以及页面交互方法