Luogu [P3951] 小凯的疑惑

题目详见:【P3951】小凯的疑惑

首先说明:此题为一道提高组的题。但其实代码并没有提高组的水平。主要考的是我们的推断能力,以及看到题后的分析能力。

分析如下:

证明当k>ab-a-b时,小凯可以准确支付这个物品。

显然,可以列出一个不定方程ma+nb=k,(m n,为未知数)由于m,n是金币个数,所以m>-1,n>-1,

这个不定方程的通解为m=m0+bt,n=n0-at,(仅仅为写法的一种,不过这样写最方便,m0,n0为方程的一组解),

m0+bt>-1,n0-at>-1,化简后有-(m0+1)/b<t<(n0+1)/a,

显然(n0+1)/a-(-(m0+1)/b)=(n0+1)/a+(m0+1)/b=(bn0+b+a+am0)/ab,

又因为bn0+am0=k.所以原式等于(k+a+b)/ab,显然k+a+b>ab,所以原式大于1,所以区间(-(m0+1)/b,(n0+1)/a,)中必有一个整数,t一定存在,所以命题成立。

又可证明当k=ab-a-b时小凯无法支付(大家可以去参考题解,我就不啰嗦了),

所以ab-a-b就是不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 ——摘自luogu

#include<iostream>
using namespace std;
int main()
{
    long long a,b;
    cin>>a>>b;
    cout<<a*b-a-b;    
    return 0;
}
原文地址:https://www.cnblogs.com/qiuchengrui/p/8504743.html