题目链接

颓了一天 写个模板吧。。

Chinese_Remainder_Theorem: MashiroSky远航之曲

#include <cstdio>
#include <cctype>
#define gc() getchar()
typedef long long LL;
const int N=13; LL n,L,R,B[N],m[N]; inline LL read()
{
LL now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
//void Exgcd(LL a,LL b,LL &x,LL &y)
//{
// if(!b) x=1,y=0;
// else {
// Exgcd(b,a%b,x,y);
// LL t=x; x=y, y=t-a/b*y;
// }
//}
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;
}
void CRT()
{
LL M=1,res=0,x,y,Mi,ans=0,Min=0;
for(int i=1; i<=n; ++i) M*=m[i];
for(int i=1; i<=n; ++i)
{
Mi=M/m[i], Exgcd(Mi,m[i],x,y);
x=(x%m[i]+m[i])%m[i];
res+=B[i]*Mi*x;
}
res%=M;
if(!res) res=M;
if(res<=R) ans=(R-res)/M+1;//[res,R]中解的个数 //res就是最小正整数解了,>R显然[L,R]无解(L,R>0)
if(res<=L) ans-=(L-res)/M+1;//[res,L](res<=L)中解的个数 注意这里=L也要计算(减掉),因为下一行要特判边界L的解
if(!((L-res)%M)) ++ans;//边界L的解
if(ans)
if(L<=res) Min=res;//Min=res-(res-L)/M*M;//res就已是最小的解
else /*if(res<L)*/ Min=res+((L-res-1)/M+1)*M;//ans是解的个数不是要运算的数!
printf("%lld\n%lld",ans,Min);
} int main()
{
n=read(),L=read(),R=read();
for(int i=1; i<=n; ++i) m[i]=read(),B[i]=read();
CRT();
return 0;
}

CODEVS.3990.中国余数定理2(CRT)的更多相关文章

  1. Codevs 3990 中国余数定理 2

    3990 中国余数定理 2 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 传送门 题目描述 Description Skytree神犇最近在研究中国博大精深的数学. ...

  2. 【codevs3990】中国余数定理2

    [题目描述]Skytree神犇最近在研究中国博大精深的数学.这时,Sci蒟蒻前来拜访,于是Skytree给Sci蒟蒻出了一道数学题:给定n个质数,以及k模这些质数的余数.问:在闭区间[a,b]中,有多 ...

  3. RSA-CRT leaks__因使用中国余数定理计算RSA所引起的私钥泄露

    在heartbleed[1]漏洞后,很多用户打开了PFS[2]功能.但很不幸,之后RedHat又报告出在多个平台上存在RSA-CRT导致的密钥泄露[3]. 中国余数定理(CRT)常被用在RSA的计算中 ...

  4. 中国余数定理 2(codevs 3990)

    题目描述 Description Skytree神犇最近在研究中国博大精深的数学. 这时,Sci蒟蒻前来拜访,于是Skytree给Sci蒟蒻出了一道数学题: 给定n个质数,以及k模这些质数的余数.问: ...

  5. 中国余数定理 1(codevs 3040)

    题目描述 Description 摘自算法导论...... 找出第k个被3,5,7除的时候,余数为2,3,2的数: 输入描述 Input Description 一个数k. 输出描述 Output D ...

  6. Codevs 3990 [中国剩余定理]

    模板题 注意如何得到[a,b]区间范围内的解 #include <iostream> #include <cstdio> #include <cstring> #i ...

  7. 「中国剩余定理CRT」学习笔记

    设正整数$m_1, m_2, ... , m_r$两两互素,对于同余方程组 $x ≡ a_1 \ (mod \ m_1)$ $x ≡ a_2 \ (mod \ m_2)$ $...$ $x ≡ a_r ...

  8. 中国剩余定理CRT(孙子定理)

    中国剩余定理 给出以下的一元线性同余方程组: $\Large(s):\left\{\begin{aligned}x\equiv a_1\ (mod\ m_1)\\x\equiv a_2\ (mod\ ...

  9. 中国剩余定理(CRT)及其扩展(EXCRT)详解

    问题背景   孙子定理是中国古代求解一次同余式方程组的方法.是数论中一个重要定理.又称中国余数定理.一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷下第 ...

随机推荐

  1. 八大最安全的Linux发行版,具备匿名功能,做服务器的首选,web,企业服务器等

    10 best Linux distros for privacy fiends and security buffs in 2017 Introduction The awesome operati ...

  2. 13-JS中的面向对象

    创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 JS中最基本创建对象的 ...

  3. android 获取手机GSM/CDMA信号信息,并获得基站信息

    本文转自:http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/ 在Android中我们常用的轻松获取WIFI信号列表,那如 ...

  4. 使用JDBC连接数据库报“找不到驱动程序”错误解决

    1.jre安装不成功: 2.jre中没有数据库驱动(D:\jre\lib\ext 中查看)

  5. windows下升级node&npm

    一.升级npm npm install -g npm 二.升级node 1.查询node的安装目录 where node 2.在官网下载最新的安装包,直接覆盖安装即可. https://nodejs. ...

  6. 轻量架构ShuffleNet V2:从理论复杂度到实用设计准则

    转自:机器之心 近日,旷视科技提出针对移动端深度学习的第二代卷积神经网络 ShuffleNet V2.研究者指出过去在网络架构设计上仅注重间接指标 FLOPs 的不足,并提出两个基本原则和四项准则来指 ...

  7. java 语言的主要特点

    java 语言主要特点如下: 1:简单 2:面向对象 3:分布性 4:可移植性 5:安全性 6:健壮性 二:java 主要术语 三:java 核心是面向对象程序设计OOP 四:封装 五:多态 六:继承 ...

  8. Java中BigDecimal类介绍及用法

    Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是 ...

  9. C# semphore的使用

    ”信号量非常类似于互斥,信号量可以同时由多个线程使用. 信号量是一种计数的互斥锁定,可以定义允许同时访问受旗语锁定保护的资源的线程个数. 如果需要限制可用资源的线程数,信号量就非常有用.例如,如果系统 ...

  10. hdu 4463 有一条边必须加上 (2012杭州区域赛K题)

    耐克店 和 苹果店必须相连 Sample Input42 30 01 00 -1 1 -10 Sample Output3.41 # include <iostream> # includ ...