AcWing
1205. 买不到的数目
引理:
给定$a$,$b$,若$d = gcd(a,b) > 1$,即$a$,$b$不是互质的,则一定不能凑出最大数。
结论:
如果$a$,$b$均是正整数且互质,那么由$ax + by, x \ge 0, y \ge 0$不能凑出的最大数是$(a - 1)(b - 1) - 1$
#include <bits/stdc++.h>
using namespace std;
int n, m;
int main(){
cin >> n >> m;
cout << (n - 1) * (m - 1) - 1;
return 0;
}
补充:
裴蜀定理
对任何整数$a$、$b$和$m$,关于未知数$x$和$y$的线性丢番图方程(称为裴蜀等式)$ax+by=m$,有整数解时当且仅当$m$是$a$及$b$的最大公约数$d$的倍数。裴蜀等式有解时必然有无穷多个整数解,每组解$x$、$y$都称为裴蜀数,可用扩展欧几里得算法求得。
例如,$12$和$42$的最大公约数是$6$,则方程$12x+42y=6$有解。事实上有$(-3) \times 12 + 1 \times 42 = 6$及$4 \times 12 + (-1) \times 42 = 6$.
特别来说,方程$ax+by=1$有整数解当且仅当整数$a$和$b$互素。