Description

现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示。其中第二组中的数字是两两互素的。求最小的非负整数n,满足对于任意的i,n - ai能被bi整除。

Input

输入数据的第一行是一个整数k,(1 ≤ k ≤ 10)。接下来有两行,第一行是:a1,a2,...,ak,第二行是b1,b2,...,bk

Output

输出所求的整数n。

\(CRT\)。

通过读题,我们可以得到一群这样的关系

\[n-a_i \equiv 0(mod \ b_i)
\]

然后移项

\[n \equiv a_i(mod \ b_i)
\]

\(What's \ this?\)中国剩余定理。

懒得在这推了,所以就是裸的\(CRT\)问题了。

放下代码好了。

代码

#include<cstdio>
#include<iostream>
#include<algorithm>
#define int long long
#define R register using namespace std; const int gz=18; inline void in(R int &x)
{
R int f=1;x=0;char s=getchar();
while(!isdigit(s)){if(s=='-')f=-1;s=getchar();}
while(isdigit(s)){x=x*10+s-'0';s=getchar();}
x*=f;
} int a[gz],b[gz],N=1,n,ans; int exgcd(R int a,R int b,R int &x,R int &y)
{
if(b==0)
{
x=1;y=0;
return a;
}
R int t=exgcd(b,a%b,x,y);
R int tmp=x;
x=y;y=tmp-a/b*y;
return t;
} inline int mul(R int x,R int y)
{
R int res=0;
for(;y;y>>=1,x=(x+x)%N)
if(y&1)res=(res+x)%N;
return res;
} inline void China()
{
for(R int i=1;i<=n;i++)
{
R int bb=N/b[i];
R int aa=b[i];
R int x,y;
exgcd(aa,bb,x,y);
(y+=b[i])%=b[i];
R int tmp=mul(bb,y)%N;
(ans+=mul(a[i],tmp)%N)%=N;
}
} signed main()
{
in(n);
for(R int i=1;i<=n;i++)in(a[i]);
for(R int i=1;i<=n;i++)in(b[i]),N*=b[i];
China();
printf("%lld",(ans+N)%N);
}

最新文章

  1. IE8/9的console之坑
  2. 移动端 viewport设置
  3. (转)HTTP协议详解
  4. Jquery AutoComplete的使用方法实例
  5. CI框架篇之基础篇(2)
  6. HDU--杭电--4506--小明系列故事——师兄帮帮忙--快速幂取模
  7. ActiveMQ in Action(6) - Features
  8. C#深入学习 ----多线程学习(一)第一天学习
  9. 使用UE4/Unity创建VR项目
  10. ajax调用servlet
  11. Rip配置
  12. Qt Designer 的使用
  13. Spring-boot(二)yml文件的使用
  14. spring 配置ibatis和自动分页
  15. mysql如何让自增id从某个位置开始设置方法
  16. GITHUB使用及入门总结
  17. java多线程14 :wait()和notify()/notifyAll()
  18. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
  19. HTML:链接标签的使用
  20. 核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程

热门文章

  1. 什么叫TLD、gTLD、nTLD、ccTLD、iTLD 以及几者之间的关系
  2. 汕头市队赛SRM 20 T3 灵魂觉醒
  3. Vue前端开发规范(山东数漫江湖)
  4. Spring Data JPA 的使用(山东数漫江湖)
  5. 聂老师的考验(反向bfs)
  6. JAVA 非对称加密算法RSA
  7. 关于EditText.setText()无法显示的问题
  8. kernel cmdline
  9. hadoop环境搭建编译
  10. API(全局配置,全局API)