博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM-ICPC 2015 Changchun Preliminary Contest——J题
阅读量:4511 次
发布时间:2019-06-08

本文共 1286 字,大约阅读时间需要 4 分钟。

题目大意

输入n,m,k以及k个质数p1,p2,...,pk,求$C_n^m\%(p1*p2*...*pk)$。

思路

听群里大佬说了一句扩展Lucas,然后就去学(其实也可以中国剩余定理+Lucas)。

这里主要想说一下这题的数据,极容易爆long long。所以,

1.乘之前一定要%!

2.mod可能是1e18范围的,就要用快速乘!

代码

1 #include
2 3 using namespace std; 4 5 long long n,m,k,geshu[100005],prim[15],cn,M; 6 long long T; 7 8 long long qa(long long a,long long b,long long p) 9 { 10 long long ret=0; 11 while(b) 12 { 13 if(b&1) 14 { 15 ret+=a; 16 ret%=p; 17 } 18 a<<=1; 19 a%=p; 20 b>>=1; 21 } 22 return ret; 23 } 24 25 long long pw(long long a,long long b,long long p) 26 { 27 long long ret=1; 28 while(b) 29 { 30 if(b&1) 31 { 32 ret*=a;ret%=p; 33 } 34 a*=a;a%=p;b>>=1; 35 } 36 return ret%p; 37 } 38 39 long long exgcd(long long a,long long b,long long &x,long long &y) 40 { 41 if(b==0) 42 { 43 x=1;y=0; 44 return a; 45 } 46 long long xx,yy,ret=exgcd(b,a%b,xx,yy); 47 x=yy; 48 y=xx-a/b*yy; 49 return ret; 50 } 51 52 long long fac(long long n,long long p,long long pk) 53 { 54 if(n==0)return 1; 55 long long ret=1; 56 for(long long i=1;i

 

转载于:https://www.cnblogs.com/LiqgNonqfu/p/11318881.html

你可能感兴趣的文章
描边时消除锯齿SetSmoothingMode
查看>>
15回文相关问题
查看>>
将VS2013项目转成VS2010项目的方法
查看>>
[置顶] 怎么对待重复的代码
查看>>
多种方法实现H5网页图片动画效果;
查看>>
Ubuntu/CentOS下使用脚本自动安装 Docker
查看>>
源码解读Mybatis List列表In查询实现的注意事项
查看>>
POJ 2311 Cutting Game(二维SG+Multi-Nim)
查看>>
1978 Fibonacci数列 3
查看>>
1225 八数码难题
查看>>
C#控件的闪烁问题解决方法总结
查看>>
js 冒泡事件与解决冒泡事件
查看>>
2018-2019赛季多校联合新生训练赛第七场(2018/12/16)补题题解
查看>>
后台全选功能以及数据的提交方法
查看>>
Android 动画效果 及 自定义动画
查看>>
const与#define相比有什么不同?
查看>>
Eclipse4.7 SpringIDE插件的安装
查看>>
C#面向对象基础
查看>>
Jquery页面加载效果
查看>>
ios对new Date() 的兼容问题
查看>>