分析:
考场上想出来的是exgcd解法
实在是不想承认这道题是小学奥数
所以一直认为,exgcd 是这道题的标算
我们需要连续的拼凑整数
假设我们已经能够拼出S
那么我们就需要x个a硬币,和y个b硬币拼出1(这样S+1就合法了)
于是就有方程:ax+by=1
因为a,b互质,因此上述方程一定有解
得到二元组(x,y),我们会发现x和y一定不同号
所以每次我们都需要减少一种硬币,增加另一种硬币来满足条件
说的简单点
a*num1+b*num2=S
a*((num1+x+b)%b)+b*((num2+y+a)%a)=S+1
然而如果最大的一个拼不出来的数字一定不符合上述式子
于是在考场上,我就枚举了num1和num2
扒的luogu上的优秀题解
对于所有可行的能被
a
和
现在我们要构造的是最大的不合法的数,显然,这个数 +1 一定是一个合法的数,转化成了求最大的减一后不合法的数。
由于这个数 k 一定是合法的,所以满足性质
那么如果 k−1 合法,那么 k−1 可以表示成
或
其中
x′,y′
表示
ax+by=1
的
x
最小且非负的整数解;
那么现在只需要让
那么最后的最大的减一后不合法的数就是
那么最后的答案就是
证明:
首先充分性成立。
然后证明必要性:若
a(x′−1)+b(y′′−1)
不是最大的减一后不合法的数,那么一定存在一个更大的数,显然该数的
a
的系数大于
综上, a(x′−1)+b(y′′−1)−1 是最大的不合法的数。
在这里提一句小学奥数做法
猜结论:答案是 ab−a−b ,当然猜出来还不够,我们还得证出来
用到一个引理:不定方程 ax+by=c(a,b,c>0) 一定有一组解 (x1,y1) 满足 −a<y1≤0 且 x1>0
先证引理
首先,显然
x,y
中至少有一个非负(都是负数怎么等于
c
)
然后假设有一组特解
所以有一组特解
(x1,y1)
满足
−a<y1≤0
因为
y1≤0
,所以
x1>0
引理得证
再证原命题
a=1
或
b=1
时命题成立,下面考虑
a>1,b>1
分两步:
1.证 ab−a−b≠ax+by
假设
ab−a−b=ax+by(x≥0,y≥0)
那么
ab=a(x+1)+b(y+1)
令
m=x+1,n=y+1(m≥1,n≥1)
,则
ab=am+bn
所以
a|bn
又因为
gcd(a,b)=1
,所以
a|n
,不妨设
n=an′
上面的式子变为
ab=am+abn′
,推出
am=(1−n′)ab≤0
,矛盾!
原命题得证
2.证 ab−a−b+t(t≥1) 可以被分解为 ax+by 的形式
构造不定方程
au+bv=t
,由引理得它有一组特解满足
−a<v0≤0
且
u0>0
ab−a−b+t=ab−a−b+au0+bv0=(u0−1)a+(v0+a−1)b
因为
u0−1≥0,v0+a−1≥0
,所以原命题得证
所以,
ab−a−b
是最大的不能被表示为
ax+by
的整数