如果你不知道什么是中国剩余定理,你可以@。
猜数字
现有两组数字,每组\(k\)个,第一组中的数字分别用\(a_1,a_2,\dots,a_k\)表示,第二组中的数字分别用\(b_1,b_2,\dots,b_k\)表示。其中第二组的数字是两两互素的。求最小的\(n\in N\),满足对于\(\forall i\in[i,k]\),有\(b_i|(n-a_i)\)。
输入格式
第一行一个整数\(k\)。
第二行\(k\)个整数,表示:\(a_1,a_2,\dots,a_k\)。
第三行\(k\)个整数,表示:\(b_1,b_2,\dots,b_k\)。
输出格式
输出一行一个整数,为所求的答案\(n\)。\(1≤k≤10,∣a_i∣≤10^9,1≤b_i≤6×10^3\prod_{i=1}^k b_i\le 10^{18}\)。
思路:这是孙子定理的模板题,注意数据范围
#include
#include
扩展中国剩余定理
给定\(n\)组非负整数\(a_i,b_i\),求解关于\(x\)的方程组的最小非负整数解。
\[\begin{cases}
x\equiv b_1(mod\:a_1)\\
x\equiv b_2(mod\:a_2)\\
\dots\\
x\equiv b_n(mod\:a_n)\\
\end{cases}
\]输入格式
输入一行包含整数\(n\)。
接下来\(n\)行,每行两个非负整数\(a_i,b_i\)。
输出格式
输出一行,为满足条件的最小非负整数\(x\)。
数据范围
\(1\leq n\leq10^5,1\leq b_i,a_i\leq10^{12}\),保证所有\(a_1\)的最小公倍数不超过\(10^{18}\)。
思路:同样这也是一道模板题,但是我们要注意数据的范围大小,在编写代码时,使用乘法运算结果会有溢出。
#include
#include