【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理
Description
Input
Output
Sample Input
Sample Output
HINT
10%的数据中,1 <= N <= 50;
20%的数据中,1 <= N <= 1000;
40%的数据中,1 <= N <= 100000;
100%的数据中,1 <= G <= 1000000000,1 <= N <= 1000000000。
Source
Sdoi2010 Contest2
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #define P 999911659 5 #define ll long long 6 using namespace std; 7 ll p[4]={2,3,4679,35617}; 8 ll fac[4][40010],m[4]; 9 ll N,G; 10 ll qpow(ll a,ll b,ll c) 11 { 12 int ans=1; 13 while (b) 14 { 15 if (b&1) ans=ans*a%c; 16 a=a*a%c; 17 b>>=1; 18 } 19 return ans; 20 } 21 22 ll C(ll m,ll n,ll t) 23 { 24 if (n<m) return 0; 25 return fac[t][n]*qpow(fac[t][n-m]*fac[t][m],p[t]-2,p[t])%p[t]; 26 } 27 28 ll lucas(ll m,ll n,ll t) 29 { 30 if (m==0) return 1; 31 return C(m%p[t],n%p[t],t)*lucas(m/p[t],n/p[t],t)%p[t]; 32 } 33 34 void ex_gcd(ll a,ll b,ll &x,ll &y) 35 { 36 if (b==0) {x=1;y=0;return;} 37 ex_gcd(b,a%b,x,y); 38 int t=x; x=y; y=t-a/b*y; 39 } 40 41 ll chinese_remainer() 42 { 43 ll re=0,ree=0; 44 for (int i=0;i<4;i++) 45 { 46 ll x,y; 47 ex_gcd((P-1)/p[i],p[i],x,y); 48 ree=(x%(P-1)*((P-1)/p[i])%(P-1)+(P-1))%(P-1); 49 re+=ree*m[i]%999911658; 50 re%=999911658; 51 } 52 return re; 53 } 54 55 int main() 56 { 57 scanf("%d%d",&N,&G); 58 for (int i=0;i<4;i++) 59 { 60 fac[i][0]=1; 61 for (int j=1;j<=p[i];j++) 62 fac[i][j]=(fac[i][j-1]*j)%p[i]; 63 } 64 if (G==P) {printf("0\n");return 0;} 65 G%=P; 66 for (int i=1;i<=sqrt(N);i++) 67 { 68 if (N%i==0) 69 { 70 int t=N/i; 71 for (int j=0;j<4;j++) 72 { 73 m[j]=(m[j]+lucas(i,N,j))%p[j]; 74 if (t!=i) m[j]=(m[j]+lucas(t,N,j))%p[j]; 75 } 76 } 77 } 78 int ans=chinese_remainer(); 79 printf("%d\n",qpow(G,ans,P)); 80 return 0; 81 }
View Code
转载于:https://www.cnblogs.com/DMoon/p/5225185.html
【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理相关推荐
- bzoj1951 [Sdoi2010]古代猪文 lucas+CRT+exgcd
本来以为要套exlucas的,结果不用,码量就少了很多 注: CRT要 <=0 +=P 区分清楚加减号 码: #include<iostream> #include<cst ...
- [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...
- BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2194 Solved: 919 [Submit][Statu ...
- 【初等数论四大定理之三】欧拉定理,费马小定理,威尔逊定理
突然想整理一下几个定理及其证明. 欧拉定理 若n,a为正整数,且n,a互质,则: 费马小定理: 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 求逆元方法之一:其实是欧拉 ...
- BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】...
题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...
- bzoj1951 [Sdoi2010]古代猪文
http://www.elijahqi.win/archives/3185 Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿 ...
- BZOJ1951: [Sdoi2010]古代猪文
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...
- P2480 [SDOI2010]古代猪文 Lucas+CRT合并
\(\color{#0066ff}{ 题目描述 }\) 猪王国的文明源远流长,博大精深. iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会 ...
- bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)
https://www.lydsy.com/JudgeOnline/problem.php?id=1951 先欧拉降幂 然后模数质因数分解 分别计算组合数的结果,中国剩余定理合并 #include&l ...
- 初等数论--同余--欧拉函数、欧拉定理、费马小定理
初等数论--同余--欧拉函数.欧拉定理.费马小定理 概念 同余类,既约同余类 欧拉函数 完全剩余系,既约剩余系 关于完全剩余系.既约剩余系一些比较简单的定理 欧拉定理.费马小定理 博主是初学初等数论( ...
最新文章
- Bitcoin Unlimited发布BCH新版客户端1.5.0.0,包括CTOR和CDSV
- hdu3622 二分+2sat
- 安装图形界面、VNCserver
- Vue学习(一)-邂逅Vuejs
- reactjs入门示例
- 网络爱好者必知的国内十大知名Linux系统版本
- unity 草 可以一棵棵种吗?_俗语“门前一棵柳,金银财宝往家走”啥意思?房前可以种柳树吗?...
- linux time
- 【R】语言第二课----- 变量的使用方法
- 又出问题 三星Galaxy S10被曝意外触摸保护功能无效
- idea允许多实例运行
- kernel 3.2.0 上加入自己的板级文件
- 医院患者随访管理系统
- php中的eof是什么意思,在C++中eof是什么意思?
- 日语语法(二):名词
- C语言——基本编写规范
- VB如何使用API直接操作打印机
- 淘宝/天猫API ,获取sku详细信息 OneBound数据
- Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持。。。
- 《MAC OS X 技术内幕》读书笔记第一章:MAC OS X的起源
热门文章
- 我的fedora10的virtual box网络设置
- 【LeetCode】198.打家劫舍
- springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...
- ubuntu phpinfo mysql_Ubuntu 16.04 apache+php+mysql环境搭建
- 计算机应用基础东师,2018年东师计算机应用基础.doc
- java技术的核心是哪个_[JAVA]《Java 核心技术》(一)
- css rem 大屏开发_px和em、rem单元如何选择?
- 生成,保存和转换pcd点云文件
- Oracle ASM 翻译系列第十二弹:ASM Internal amdu - ASM Metadata Dump Utility
- Redis数据类型操作(一) —— String