1 条题解
-
0
思路与算法
用互质导致0,b,...,(a-1)b模a覆盖全部余数,逐余数的最小可表示金额给出最大空缺ab-a-b;不是求任意整系数方程,题解须同时证明非负系数边界。
按上述模型建立状态或枚举对象,依代码中的顺序处理输入并输出完整答案。
正确性说明
因gcd(a,b)=1,kb在k=0..a-1的余数互不相同。若金额与kb同余,表示式中b的系数规范化到该k后,最小非负可表示金额为kb,所有更大的同余金额均可加若干a得到。因此该余数最大空缺为kb-a,所有余数取最大即(a-1)b-a。输入保证存在空缺,排除面值1。
复杂度
O(1)算术时间、O(1)空间;乘法使用64位,ab至多10^18。
易错点
一般裴蜀定理允许负系数,不能直接把它当作非负支付可行性;题解的余数代表元额外给出非负边界。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { long long a, b; cin >> a >> b; cout << a * b - a - b << "\n"; }
- 1