3990 中国余数定理 2

时间限制: 1 s

空间限制: 1000 KB

题目等级 : 白银 Silver

传送门

题目描述 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整数

分类标签 Tags

数论 欧几里得算法 逆元

/*
中国剩余定理(exgcd+逆元)(互质版).
数学很重要.
cin很重要.
*/
#include<iostream>
#include<cstdio>
#define MAXN 11
#define LL long long
using namespace std;
LL l,r,m[MAXN],M1[MAXN],x,ans,sum,y,n,tot=1,b[MAXN],M[MAXN];
void exgcd(LL a,LL b)
{
if(!b)
{
x=1;y=0;return ;
}
exgcd(b,a%b);
LL s=x;x=y;y=s-a/b*y;
}
int main()
{
cin>>n>>l>>r;
//scanf("%I64d%I64d%I64d",&n,&l,&r);
for(int i=1;i<=n;i++) cin>>m[i]>>b[i],tot*=m[i];//①
for(int i=1;i<=n;i++) M[i]=tot/m[i];//②
for(int i=1;i<=n;i++)
{
x=y=0;
exgcd(M[i],m[i]);
M1[i]=(x+m[i])%m[i];//③
}
for(int i=1;i<=n;i++)
{
ans=(ans+M[i]*M1[i]%tot*b[i])%tot;//④//随时mod以防爆掉.
}
if(ans<l||ans>r) ans=sum=0;
else sum=(r-ans)/tot+1;
cout<<sum<<endl<<ans;;
//printf("%lld\n%lld",sum,ans);
return 0;
}

最新文章

  1. 第六代智能英特尔&#174; 酷睿™ 处理器图形 API 开发人员指南
  2. 如何在Linux服务器中隐藏PHP版本
  3. PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换
  4. who
  5. SecureCRT的快捷键
  6. 使用mysqlbinlog server远程备份binlog的脚本
  7. RNA seq 两种计算基因表达量方法
  8. PCA算法
  9. C++中const关键字详解
  10. oracle 自定义函数
  11. SqlBulkCopy批量写入25万条数据只需3s
  12. python construct文档
  13. mysql具体语句示例
  14. STM8的中断系统以及外部中断详解
  15. cookie值的设置,获取及删除
  16. Java Map对象的遍历
  17. IIS发布网站浏览之后看到的是文件目录 &amp; Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 &amp; App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
  18. ASP.NET MVC 网页应用 action 传递的Model
  19. tkinter内嵌Matplotlib系列(一)之解读官网教材
  20. BZOJ 3771 Triple FFT+容斥原理

热门文章

  1. sap判断条件
  2. 【Java基础】Java内部类
  3. ERROR hdfs.DFSClient: Failed to close file解决方法
  4. chroot 命令实例讲解
  5. hdu 1050 Moving Tables
  6. 为Centos安装自定义yum源
  7. 你知道用AngularJs怎么定义指令吗?
  8. 标准I/O库之定位流
  9. 神奇的 BlocksKit(1):源码分析(上)
  10. C#多线程编程(1):线程的启动