定理内容

对于任意不全为 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,amodb)\gcd(a,b)=\gcd(b,a\bmod b)

a=kb+c,dgcd(a,b)a=kb+c,d\mid\gcd(a,b),那么一定有 da,dbd\mid a,d\mid b

通过移项可以得到 c=kbac=kb-a,将两边同除 dd 得到 cd=kbdad\dfrac{c}{d}=k\cdot\dfrac{b}{d}-\dfrac{a}{d},因为 da,dbd\mid a,d\mid b 所以等式右侧为整数,这就证明了 dcd\mid c

a=kb+ca=kb+c 变形可以得到 c=bmodac=b\bmod a,可以推出 dbmodad\mid b\bmod a,因为所有的因数都是相同的,所以自然有 gcd(a,b)=gcd(b,amodb)\gcd(a,b)=\gcd(b,a\bmod b)

定理证明

对于任意一个 a,ba,b00 的情况有 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\dfrac{1}{d} 可以得到 adx+bby=1\dfrac{a}{d}\cdot x+\dfrac{b}{b}\cdot y=1,不妨设 a=ad,b=bda'=\dfrac{a}{d},b'=\dfrac{b}{d}

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

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

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

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

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

拓展

多个元素

裴蜀定理可以拓展到多个数的情况,也就是对于不全为 00 的整数 a1,a2,,ana_1,a_2,\cdots ,a_n 的方程 i=1naixi=gcdi=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=1naixi=m\sum\limits_{i=1}^{n}a_i\cdot x_i=m,如果 mgcdi=1naim\mid \gcd\limits_{i=1}^{n} a_i 那么方程有解,否则一定无解。

证明很简单,因为 i=1naixi=gcdi=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+ai1)]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+ai1)]2=0\sum_{i=1}^{m} \cfrac{a_i\cdot[x_i+(x_i+a_i-1)]}{2}=0

i=1mai[2xi+ai1]2=0\sum_{i=1}^{m} \cfrac{a_i\cdot[2\cdot x_i+a_i-1]}{2}=0

也就是 (i=1mai(ai1)2)+(i=1maixi)=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(ai1)2=i=1maixi\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(ai1)2\gcd(a_1,a_2,\cdots,a_{m})\mid \sum_{i=1}^m \cfrac{a_i\cdot(a_i-1)}{2} 时有解,通过移项可以得到 2i=1mai(ai1)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}

将上式代入,得到 2i=1m2tci(2tci1)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(ai1)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 直接不看,即得到 2i=1mci(2tci1)2\mid \sum_{i=1}^m c_i\cdot(2^t\cdot c_i-1)

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

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

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

对于 t0t\ne 0 的情况,假设有 aaaia_i 没有多余的 22bb 个有多余的 22,那么贡献为 2bi=0a/2Ca2i2^b\cdot \sum_{i=0}^{\lfloor a/2\rfloor }C^{2i}_{a}

因为 Cai=Ca1i+Ca1i1C^i_a=C^i_{a-1}+C_{a-1}^{i-1},所以贡献为 2bi=1a1Ca1i2^b\cdot\sum_{i=1}^{a-1}C^i_{a-1},也就是 aa 个元素的非空子集数量 2b(2a11)2^b\cdot (2^{a-1}-1)