定理内容

对于任意不全为 00 的整数 a,ba,b,方程 ax+by=gcd⁡(a,b)ax+by=\gcd(a,b) 一定有整数解 x,yx,y。

证明

引理 11

对于两个正整数 a,ba,b 满足 a>ba>b 可以推出 gcd⁡(a,b)=gcd⁡(b,a mod b)\gcd(a,b)=\gcd(b,a\bmod b)。

设 a=kb+c,d∣gcd⁡(a,b)a=kb+c,d\mid\gcd(a,b),那么一定有 d∣a,d∣bd\mid a,d\mid b。

通过移项可以得到 c=kb−ac=kb-a,将两边同除 dd 得到 cd=k⋅bd−ad\frac{c}{d}=k\cdot\frac{b}{d}-\frac{a}{d},因为 d∣a,d∣bd\mid a,d\mid b 所以等式右侧为整数,这就证明了 d∣cd\mid c。

将 a=kb+ca=kb+c 变形可以得到 c=b mod ac=b\bmod a,可以推出 d∣b mod ad\mid b\bmod a,因为所有的因数都是相同的,所以自然有 gcd⁡(a,b)=gcd⁡(b,a mod b)\gcd(a,b)=\gcd(b,a\bmod b)。

定理证明

对于任意一个 a,ba,b 为 00 的情况有 gcd⁡(a,b)=max⁡(a,b)\gcd(a,b)=\max(a,b),此时 x=1,y=1x=1,y=1 就是一组解,定理显然满足。

设 d=gcd⁡(a,b)d=\gcd(a,b),那么将等式两侧同乘 1d\frac{1}{d} 可以得到 ad⋅x+bb⋅y=1\frac{a}{d}\cdot x+\frac{b}{b}\cdot y=1,不妨设 a′=ad,b′=bda'=\frac{a}{d},b'=\frac{b}{d}。

所以只需要证明 a′x+b′y=1a'x+b'y=1 即可。

根据引理 11 可以得到辗转相除法 gcd⁡(a,b)=gcd⁡(b,a mod b)=⋯\gcd(a,b)=\gcd(b,a\bmod b)=\cdots。

我们记录出每一取模,具体的 a=qi⋅b+ria=q_i\cdot b+r_i,其中 rir_i 就是 a mod ba\bmod b 的值。

在辗转相除法进行到最后一步时一定有 rn=1r_n=1,将取模操作反向的带回原式可以得到:rn−2=xnrn−1+1,1=rn−2−xnrn−1,⋯r_{n-2}=x_nr_{n-1}+1,1=r_{n-2}-x_nr_{n-1},\cdots。

通过这样的不断代换就可以得到 a′x+b′y=1a'x+b'y=1。

拓展

多个元素

裴蜀定理可以拓展到多个数的情况,也就是对于不全为 00 的整数 a1,a2,⋯ ,ana_1,a_2,\cdots ,a_n 的方程 ∑i=1nai⋅xi=gcd⁡i=1nai\sum\limits_{i=1}^{n}a_i\cdot x_i=\gcd\limits_{i=1}^{n} a_i 一定可以找到整数解 x1,x2,⋯ ,xnx_1,x_2,\cdots,x_n。

一般应是否有解

对于更一般的方程 ∑i=1nai⋅xi=m\sum\limits_{i=1}^{n}a_i\cdot x_i=m,如果 m∣gcd⁡i=1naim\mid \gcd\limits_{i=1}^{n} a_i 那么方程有解,否则一定无解。

证明很简单,因为 ∑i=1nai⋅xi=gcd⁡i=1nai\sum\limits_{i=1}^{n}a_i\cdot x_i=\gcd\limits_{i=1}^{n} a_i 有解,那么将所有的元素除以 mm 就得到一组解了。

应用

题目

假设长度为 aia_i 的连续的序列的第一项为 xix_i,那么因为易得 si=ai⋅[xi+(xi+ai−1)]2s_i=\cfrac{a_i\cdot[x_i+(x_i+a_i-1)]}{2} 。

因为题目要求 ∑i=1msi=0\sum_{i=1}^{m} s_i=0,所以可以得到 ∑i=1mai⋅[xi+(xi+ai−1)]2=0\sum_{i=1}^{m} \cfrac{a_i\cdot[x_i+(x_i+a_i-1)]}{2}=0。

即 ∑i=1mai⋅[2⋅xi+ai−1]2=0\sum_{i=1}^{m} \cfrac{a_i\cdot[2\cdot x_i+a_i-1]}{2}=0。

也就是 (∑i=1mai⋅(ai−1)2)+(∑i=1mai⋅xi)=0(\sum_{i=1}^{m} \cfrac{a_i\cdot(a_i-1)}{2})+(\sum_{i=1}^{m} a_i\cdot x_i)=0。

通过移项可以得到 ∑i=1mai⋅(ai−1)2=−∑i=1mai⋅xi\sum_{i=1}^{m} \cfrac{a_i\cdot(a_i-1)}{2}=-\sum_{i=1}^{m} a_i\cdot x_i,所以左边就是一个常数。

根据贝祖定理,当且仅当 gcd⁡(a1,a2,⋯ ,am)∣∑i=1mai⋅(ai−1)2\gcd(a_1,a_2,\cdots,a_{m})\mid \sum_{i=1}^m \cfrac{a_i\cdot(a_i-1)}{2} 时有解,通过移项可以得到 2∣∑i=1mai⋅(ai−1)gcd⁡(a1,a2,⋯ ,am)2\mid \sum_{i=1}^m \cfrac{a_i\cdot(a_i-1)}{\gcd(a_1,a_2,\cdots,a_{m})}。

假设 gcd⁡(a1,a2,⋯ ,am)=2t⋅(2k+1)\gcd(a_1,a_2,\cdots,a_{m})=2^t\cdot (2k+1) 其中 tt 尽可能大且 kk 为整数,那么设 ci=ai2tc_i=\cfrac{a_i}{2^t}。

将上式代入,得到 2∣∑i=1m2t⋅ci⋅(2t⋅ci−1)2t⋅(2k+1)2\mid \sum_{i=1}^m \cfrac{2^t\cdot c_i\cdot(2^t\cdot c_i-1)}{2^t\cdot(2k+1)},由于这个式子是由 ∑i=1mai⋅(ai−1)gcd⁡(a1,a2,⋯ ,am)\sum_{i=1}^m \cfrac{a_i\cdot(a_i-1)}{\gcd(a_1,a_2,\cdots,a_{m})} 变形来的,所以一定是一个整数。

因为一个偶数除以一个奇数并不影响奇偶性,所以 2k+12k+1 直接不看,即得到 2∣∑i=1mci⋅(2t⋅ci−1)2\mid \sum_{i=1}^m c_i\cdot(2^t\cdot c_i-1)。

当 t=0t=0 时,等式恒成立,否则需满足 2∣∑i=1mci2\mid \sum_{i=1}^m c_i。

因为 t=0t=0 只会发生在选择的 mm 个数中出现奇数,所以将奇数的情况单独讨论。

假设奇数有 aa 个,偶数有 bb 个,那么因为只要有奇数就可以,所以方案数为 (2a−1)⋅2b(2^a-1)\cdot 2^b。

对于 t≠0t\ne 0 的情况,假设有 aa 个 aia_i 没有多余的 22,bb 个有多余的 22,那么贡献为 2b⋅∑i=0⌊a/2⌋Ca2i2^b\cdot \sum_{i=0}^{\lfloor a/2\rfloor }C^{2i}_{a}。

因为 Cai=Ca−1i+Ca−1i−1C^i_a=C^i_{a-1}+C_{a-1}^{i-1},所以贡献为 2b⋅∑i=1a−1Ca−1i2^b\cdot\sum_{i=1}^{a-1}C^i_{a-1},也就是 aa 个元素的非空子集数量 2b⋅(2a−1−1)2^b\cdot (2^{a-1}-1)。