【模板】【codevs3990】中国剩余定理
2017-07-26 13:51
543 查看
讲解:http://blog.csdn.net/clove_unique/article/details/54571216
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; typedef long long LL; const int N=15; LL n,l,r; LL m ,a ,M=1; LL exgcd(LL a,LL b,LL &x,LL &y) { if(!b) {x=1;y=0;return a;} LL ret=exgcd(b,a%b,y,x); y-=a/b*x; return ret; } LL inv(LL a,LL mod) { LL x,y; LL ret=exgcd(a,mod,x,y); return ret==1?((x%mod)+mod)%mod:-1; } LL CRT(LL n,LL a[],LL m[]) { LL x=0; for(int i=1;i<=n;i++) { LL w=M/m[i]; x=(x+a[i]*w%M*inv(w,m[i]))%M; } return x; } int main() { scanf("%lld%lld%lld",&n,&l,&r); for(int i=1;i<=n;i++) { scanf("%lld%lld",&m[i],&a[i]); M*=m[i]; } LL x=CRT(n,a,m),sum=0,mn=0; if(x<l) x+=((l-x-1)/M+1)*M; if(x<=r) sum=(r-x)/M+1,mn=x; printf("%lld\n%lld",sum,mn); }
相关文章推荐
- Codevs 3990 [中国剩余定理]
- 【codevs3990】中国余数定理2 中国剩余定理
- CodeVS3990:中国余数定理 2 (CRT)
- BZOJ_P1951&Codevs_P1830 [SDOI2010]古代猪文(Lucas定理+扩展欧几里得+中国剩余定理)
- 【codevs3990】中国余数定理2
- 【codevs3990】中国余数定理2
- [CODEVS3990]中国余数定理 2(中国剩余定理)
- codevs3990——中国余数定理:一元模线型方程组
- 扩展欧几里得、求乘法逆元及其应用、中国剩余定理(互质版和非互质版)、欧拉函数、快速判素数模板
- poj 1006 中国剩余定理模板
- hdu 3579 Hello Kiki 中国剩余定理(不互质形式)模板题
- 中国剩余定理模板(JZOJ 3093. 【NOIP2012模拟11.7】合唱队形)
- 非互质的中国剩余定理模板(1573)
- poj 1006 中国剩余定理模板
- UVA - 11754 Code Feat (中国剩余定理 + 分类枚举)
- ACM_模板_中国剩余定理(互质与非互质)
- 中国剩余定理(模板+代码)
- 中国剩余定理模板题 互质与非互质
- LightOJ - 1319 Monkey Tradition (中国剩余定理 模板)
- poj 1006 中国剩余定理模板