中国剩余定理(孙子定理)模板

在《初等数论》上有详细的解析

这是关于模数两两互质的情况

#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
#define LL long long
LL k,l,r,n,M,x,y,Min,ans,m[15],c[15];void exgcd(LL a,LL b,LL &x,LL &y){if(!b){x=1;y=0;}else exgcd(b,a%b,y,x),y-=(a/b)*x;
}
int main(){scanf("%lld%lld%lld",&k,&l,&r);M=1LL;for(int i=1;i<=k;i++){scanf("%lld%lld",&m[i],&c[i]);M*=m[i];}for(int i=1;i<=k;i++){LL a=M/m[i],b=m[i];exgcd(a,b,x,y);x=(x%b+b)%b;n+=c[i]*a*x;n%=M;}n%=M;if(r>=n)ans=(r-n)/M+1;if(l>=n)ans=ans-((l-n)/M+1);if((l-n)%M==0)++ans;if(ans){if(l<=n)Min=n;else Min=n+((l-n)/M+1)*M;}printf("%lld\n%lld\n",ans,Min);
}

转载于:https://www.cnblogs.com/MikuKnight/p/9040164.html

codevs3990相关推荐

  1. 数论知识总结——史诗大作(这是一个flag)

    1.快速幂 计算a^b的快速算法,例如,3^5,我们把5写成二进制101,3^5=3^1*1+3^2*2+3^4*1 1 ll fast(ll a,ll b){ll ans=1;for(;b;b> ...

最新文章

  1. 如何打造BCH使用的刚性需求?
  2. shell编程之数学运算
  3. MM模块几个移动类型之间的区别
  4. MATLAB信号处理工具箱函数列表分类
  5. 小明分享:SSD201/202系统烧录篇,多种烧录方式,小明都做了分享,有需要的小伙伴拿走不谢哈!更多资料需求可以关注我,我是启明云端的小明MM!
  6. 摄像头poe供电原理_弱电知识之六:跟我学做监控,认识POE交换机与POE监控摄像头...
  7. spark-1.6.0-cdh5.15.1环境搭建:Local模式和StandAlone
  8. 随机变量X与随机变量函数Y=g(X)的概率分布
  9. 场景模型驱动自动化测试在盒马的探索及实践
  10. qtp12版本下载安装破解教程
  11. Milvus加入LF AI孵化,立志成为最流行的AI数据平台
  12. linux下组管理命令详解
  13. Mac 10.11下成功安装Wex5及文件扩展属性问题
  14. python 并发编程实战_使用Python进行并发编程
  15. 【C语言】—— 通讯录
  16. DRAM内存物理地址和地址译码器原理的剖析
  17. php生成网页快照图片,PHP100精华:PHP生成网页快照_PHP教程
  18. python h5py详解
  19. 最新抖音X-Bogus、msToken、_signature、ttwid、webid分析(2023-04-12)
  20. 2017蓝桥杯B组国赛 瓷砖样式

热门文章

  1. VS2022离线安装教程
  2. 计算机存储单位与网络传输单位
  3. 基本了解Net平台和C# #还有VS
  4. P1102 A-B数对
  5. 时序图工具和学习网页
  6. Idea官网进不去,解决办法
  7. 互联网巨头 ATM 是如何腐败的?
  8. Windows 内置下载工具
  9. 【论】RedPacketBike: A Graph-Based Demand Modeling and Crowd-Driven Station Rebalancing Framework for B
  10. 微信小程序现实点击图片预览功能