小凯的疑惑(题解c++)

该博客详细解析了NOIP2017中关于小凯如何用互素面值的金币无法准确支付最贵商品价值的问题。通过数学推导得出,当n=-1时,商品价值x取得最大值,即x=(b-1)a-b=ab-a-b。博主提供了AC代码以实现这一计算。
摘要由CSDN通过智能技术生成

题目描述

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

题目链接

NOIP2017 小凯的疑惑

题解

不妨设a<b

假设答案为 x

        x≡ma(mod b)(1≤m≤b−1)

        x=ma+nb(1≤m≤b−1)x=ma+nb(1≤m≤b−1)

显然当 n≥0≥0 时 x 可以用 a,b 表示出来,但是不合题意。

因此当 n=−1 时 x 取得最大值,此时 x=ma−b。

显然当 m 取得最大值 b−1 时 x 最大,此时 x=(b−1)a−b=ab−a−b

因此 a,b 所表示不出的最大的数是 ab−a−b

AC代码 (100分)

#include <cstdio>

typedef long long ll;

int main(int argc, char
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值