Description
给定一个 $n \times m\ (1 \leq n,m \leq 10^{12})$ 的表 格,其中 第 $i$ 行,第 $j$ 列 的元素是 $\gcd(i,j)$ 。现在有一个长度为 $k\ (1\leq k \leq 10^4)$ 的序列 $a\ (1 \leq a_i \leq 10^{12})$,询问在表格内是否存在
$x,y\ (1 \leq x \leq n,1 \leq y \leq m - k +1)$,满足对于任意一个 $l$,
都有 $\gcd(x,y+l-1) = a_l\ (1 \leq l \leq k)$(即这个序列在表格的某一行中出现过)。
Source
Solution
前置知识:
扩展中国剩余定理(exCRT)
由题意得
显然对于所有的 $a_i\ (1 \leq i \leq k)$ 都满足 $a_i \mid x$,所以 ${\rm lcm}\begin{Bmatrix}a_1,a_2,a_3,\ldots,a_k\end{Bmatrix} \mid x$ 。假设 $x = k \times lcm$($k$ 是正整数),那么 $\gcd(k \times lcm,y+i-1) = a_i$,也就是说要限制 $\gcd\left( k \times \frac{lcm}{a_i},\frac{y+i-1}{a_i} \right) = 1$ 。取 $k = 1$ 时,对该式子的影响最小,由此能够得到 $x={\rm lcm}\begin{Bmatrix}a_1,a_2,a_3,\ldots,a_k\end{Bmatrix}$ 。
至于 $y$ 呢?由上述方程组能够得到
根据同余式的性质,化简该方程组,得到
这是一个线性同余方程组,且模数不一定两两互质,所以能用 扩展中国剩余定理(exCRT) 求出 $y$ 的最小正整数解。
难道只需要考虑 $y$ 的最小正整数解吗?实际上 $y + k \times {\rm lcm}\begin{Bmatrix}a_1,a_2,a_3,\ldots,a_k\end{Bmatrix}$ 都是这个方程组的解,但因为 $\gcd(lcm, y) = \gcd(lcm,y + lcm) =\gcd(lcm,y +k\times lcm)$(原理:更相减损法),所以没必要尝试。
求出了 $x$ 和 $y$ 还没有结束,因为只满足 $a_i \mid x$ 和 $a_i \mid y + i -1\ (1 \leq i \leq k)$,可能会出现 $\gcd(x,y+i-1)\neq a_i$(即 $\gcd \left( \frac{x}{a_i},\frac{y+i-1}{a_i} \right) \neq 1$)的情况,所以要验证该解是否成立。总时间复杂度为 $O(k \log a_i)$ 。
Code
1 |
|