NKOJ 小凯的疑惑 Plus

题面

题目描述

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。

现在小凯想知道:

  1. 在无法准确支付的物品中,最贵的价值是多少金币?

  2. 共有多少种无法支付的物品?

注意:输入数据保证存在小凯无法准确支付的商品。

输入格式

输入数据仅一行,包含两个正整数 a a a b b b,它们之间用一个空格隔开,表示小凯手中金币的面值。

输出格式

输出 2 2 2 个整数,分别表示 2 2 2 个问题的答案。

数据范围

1 ≤ a , b ≤ 1 0 9 1\leq a,b \leq 10^9 1a,b109

分析

第一个问题:

设无法准确支付的面值为 c c c,所需 a , b a,b a,b 两种货币的数量为 x , y x,y x,y,则: a x + b y = c ax+by=c ax+by=c

s = a / gcd ⁡ ( a , b ) , t = b / gcd ⁡ ( a , b ) s=a/\gcd(a,b),t=b/\gcd(a,b) s=a/gcd(a,b),t=b/gcd(a,b),因为 gcd ⁡ ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1,所以 s = a , t = b s=a,t=b s=a,t=b

不妨设 a < b a<b a<b

所以要使 x , y x,y x,y 最有可能都是非负整数,即要使小凯尽可能能准确支付 c c c 这一面额,就要使 x x x 成为最小范数解,所以可以表示为 a ( x   %   t ) + b ( y + s ⌊ x t ⌋ ) = c a(x\ \%\ t)+b(y+s\lfloor\frac{x}{t}\rfloor)=c a(x % t)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值