noip2017D1T1 math

12 篇文章 1 订阅

题目链接

分析:
考场上想出来的是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 b 表示出来的数 k ,都存在 x0,y0,ax+by=k

现在我们要构造的是最大的不合法的数,显然,这个数 +1 一定是一个合法的数,转化成了求最大的减一后不合法的数

由于这个数 k 一定是合法的,所以满足性质

x0,y0,ax+by=k

那么如果 k1 合法,那么 k1 可以表示成

a(xx)+b(yy)=k

a(xx′′)+b(yy′′)=k

其中 x,y 表示 ax+by=1 x 最小且非负的整数解; x′′,y′′ 表示 ax+by=1 y 最小且非负的整数解。

那么现在只需要让 xx<0 并且 yy′′<0 即可

那么最后的最大的减一后不合法的数就是

a(x1)+b(y′′1)

那么最后的答案就是

a(x1)+b(y′′1)1

证明:

首先充分性成立。

然后证明必要性:若 a(x1)+b(y′′1) 不是最大的减一后不合法的数,那么一定存在一个更大的数,显然该数的 a 的系数大于 x1 b 的系数大于 y′′1 (如果都小于等于,那么该数不会比当前数大)。显然,减一后仍然是合法的。所以必要性成立。

综上, a(x1)+b(y′′1)1 是最大的不合法的数。

在这里提一句小学奥数做法

猜结论:答案是 abab ,当然猜出来还不够,我们还得证出来

用到一个引理:不定方程 ax+by=c(a,b,c>0) 一定有一组解 (x1,y1) 满足 a<y10 x1>0

先证引理
首先,显然 x,y 中至少有一个非负(都是负数怎么等于 c
然后假设有一组特解(x0,y0),那么通解为 (x0+bt,y0at)(tZ)
所以有一组特解 (x1,y1) 满足 a<y10
因为 y10 ,所以 x1>0
引理得证

再证原命题
a=1 b=1 时命题成立,下面考虑 a>1,b>1

分两步:

1.证 ababax+by

假设 abab=ax+by(x0,y0)
那么 ab=a(x+1)+b(y+1)
m=x+1,n=y+1(m1,n1) ,则 ab=am+bn
所以 a|bn
又因为 gcd(a,b)=1 ,所以 a|n ,不妨设 n=an
上面的式子变为 ab=am+abn ,推出 am=(1n)ab0 ,矛盾!

原命题得证

2.证 abab+t(t1) 可以被分解为 ax+by 的形式

构造不定方程 au+bv=t ,由引理得它有一组特解满足 a<v00 u0>0
abab+t=abab+au0+bv0=(u01)a+(v0+a1)b
因为 u010,v0+a10 ,所以原命题得证
所以, abab 是最大的不能被表示为 ax+by 的整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值