题目描述 Description

Skytree神犇最近在研究中国博大精深的数学。

这时,Sci蒟蒻前来拜访,于是Skytree给Sci蒟蒻出了一道数学题:

给定n个质数,以及k模这些质数的余数。问:在闭区间[a,b]中,有多少个k?最小的k是多少?

Sci蒟蒻数学能力差了Skytree三条街,所以他只好寻求计算机的帮助。他发邮件给同为oier的你,你能帮他解决这个问题吗?

输入描述 Input Description

输入第一行为三个正整数n、a、b。

第2到n+1行,每行有两个整数,分别代表第n个质数和k模第n个质数的余数。

输出描述 Output Description

输出为两个整数,代表闭区间[a,b]中k的个数和闭区间[a,b]中最小的k。如果k不存在,则输出两个0。

样例输入 Sample Input

样例1:

3 2 28

3 2

5 3

7 2

样例2:

3 24 31

3 2

5 3

7 2

样例输出 Sample Output

样例1:

1

23

样例2:

0

0

数据范围及提示 Data Size & Hint

1<=a<=b<=10^14

n<=10

输入保证所有n个质数的乘积<=10^14

每个质数<=1.5*10^9

请无视通过率(被人黑了。。。)

数据保证不会溢出64bit整数

/*
中国剩余定理
第一次求的ans是最小正整数解
*/
#include<cstdio>
#include<iostream>
#define N 15
#define LL long long
using namespace std;
LL M[N],m[N],t[N],a[N],sum=,x,y,la,lb,ans;
int n;
void e_gcd(LL a,LL b,LL &x,LL &y)
{
if(b==)
{
x=;y=;
return;
}
e_gcd(b,a%b,x,y);
LL t=x;x=y;y=t-a/b*y;
}
int main()
{
cin>>n>>la>>lb;
for(int i=;i<=n;i++)
{
cin>>m[i]>>a[i];
sum*=m[i];
}
for(int i=;i<=n;i++)
{
M[i]=sum/m[i];
e_gcd(M[i],m[i],x,y);
t[i]=(x+m[i])%m[i];
ans=((ans+(a[i]%sum)*(t[i]%sum)*(M[i]%sum))%sum);
}
LL tot=;
while(ans<la)ans+=sum;
LL temp=ans;
while(ans<=lb)
{
ans+=sum;
tot++;
}
if(!tot)temp=;
cout<<tot<<endl<<temp;
return ;
}

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

  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. CODEVS.3990.中国余数定理2(CRT)

    题目链接 颓了一天 写个模板吧.. Chinese_Remainder_Theorem: MashiroSky.远航之曲 #include <cstdio> #include <cc ...

  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. poj 算法 分类

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 最近AC题:2528   更新时间:2011.09.22  ...

  8. acm算法模板(2)

    数学问题: 1.精度计算——大数阶乘 2.精度计算——乘法(大数乘小数) 3.精度计算——乘法(大数乘大数) 4.精度计算——加法 5.精度计算——减法 6.任意进制转换 7.最大公约数.最小公倍数 ...

  9. acm算法模板(1)

    1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几 ...

随机推荐

  1. (十)mybatis之配置(mybatis-config.xml)

    配置  可以从前篇的文章中知道(https://www.cnblogs.com/NYfor2018/p/9093472.html ),要使用mybatis需要以下配置: 1.  mybatis-con ...

  2. Netbeans使用笔记

    Netbeans 新建项目 A brand new project 选择"文件">"新建项目"以打开新建项目向导. 在向导中,选择 "C/C++ ...

  3. js 判断是什么浏览器、是否为谷歌浏览器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  4. ftp - Internet 文件传输程序 (file transfer program)

    概述 (SYNOPSIS) ftp [-pinegvd ] [host ] pftp [-inegvd ] [host ] 说明 (DESCRIPTION) 用户通过 Ftp 这个程序来使用 Inte ...

  5. CPP-基础:运算符重载详解

    1.运算符重载定义: C++中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作.这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功 ...

  6. maven项目创建(eclipse配置

    Eclipse相关配置: eclipse 设置默认编码为Utf-8 需要设置的几处地方为: Window --> Preferences --> General --> Conten ...

  7. Springboot邮箱接口(使用个人邮箱发送邮件)

    近期项目使用邮件验证,这里使用个人邮箱进行测试,记录开发笔记 SpringBoot自带短信接口 maven pom.xml 引入: <dependency> <groupId> ...

  8. H.264 Profile-level-id

    基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如: video RTP/AVP rtpmap: H264/ fmtp: profile-level-id=42801E; packe ...

  9. nw335 debian sid x86-64 -- 6 第三方驱动

    nw335 debian sid x86-64 -- 6 第三方驱动

  10. SpringData及SpringData JPA的理解和简单应用

    SpringData是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得 数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务.此外,它还支持 基于关系型数据库的数据 ...