题面

题目描述

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

现在小凯想知道:

  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 1≤a,b≤109

分析

第一个问题:

设无法准确支付的面值为 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)+b(y+s⌊tx​⌋)=c。

又因为 s = a , t = b s=a,t=b s=a,t=b,所以 a ( x % b ) + b ( y + a ⌊ x b ⌋ ) = c a(x\ \%\ b)+b(y+a\lfloor\frac{x}{b}\rfloor)=c a(x % b)+b(y+a⌊bx​⌋)=c。

因为 c c c 不可准确凑出,但是因为 gcd ⁡ ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1,所以方程一定有解,所以显然的, x , ( y + a ⌊ x b ⌋ ) x,(y+a\lfloor\frac{x}{b}\rfloor) x,(y+a⌊bx​⌋) 异号。

所以不妨设 x > 0 , ( y + a ⌊ x b ⌋ ) < 0 x>0,(y+a\lfloor\frac{x}{b}\rfloor)<0 x>0,(y+a⌊bx​⌋)<0即 y < − a ⌊ x b ⌋ y<-a\lfloor\frac{x}{b}\rfloor y<−a⌊bx​⌋ 且 ≤ y ≤ − 1 \leq y \leq -1 ≤y≤−1

所以, 0 < x < b , − a < y < 0 0<x<b,-a<y<0 0<x<b,−a<y<0即 1 ≤ x ≤ b − 1 , − a + 1 ≤ y ≤ − 1 1\leq x\leq b-1,-a+1\leq y\leq-1 1≤x≤b−1,−a+1≤y≤−1

因为不只有 1 1 1 个 c c c,所以 x , y x,y x,y 不相互影响。

所以要使 c c c 最大,只需要使 x , y x,y x,y 也最大即可。

所以答案为: c = a ( b − 1 ) + b ⋅ ( − 1 ) = a b − a − b c=a(b-1)+b\cdot(-1)=ab-a-b c=a(b−1)+b⋅(−1)=ab−a−b

第二个问题:

首先算一下 a x + b y ax+by ax+by 的平均值:

∑ x = 1 b − 1 ∑ y = − a + 1 − 1 a x + b y = ∑ x = 1 b − 1 a x ⋅ ( a − 1 ) − a b ( a − 1 ) 2 = a b ( a − 1 ) ( b − 1 ) 2 − a b ( a − 1 ) ( b − 1 ) 2 = 0 \large \begin{matrix} \sum^{b-1}_{x\ =\ 1}\sum^{-1}_{y=-a+1}ax+by& =&\sum^{b-1}_{x\ =\ 1}ax\cdot (a-1)-\frac{ab(a-1)}{2}\\\\ &=&\frac{ab(a-1)(b-1)}{2}-\frac{ab(a-1)(b-1)}{2}\qquad\\\\ &=&0\qquad\qquad\qquad\qquad\qquad\quad \end{matrix} ∑x = 1b−1​∑y=−a+1−1​ax+by​===​∑x = 1b−1​ax⋅(a−1)−2ab(a−1)​2ab(a−1)(b−1)​−2ab(a−1)(b−1)​0​

所以我们可以猜测 a x + b y ax+by ax+by 正好是一半正,一半负,且一一对应,即答案为 ( a − 1 ) ( b − 1 ) 2 \frac{(a-1)(b-1)}{2} 2(a−1)(b−1)​。

接下来开始证明。

要证上面的问题,我们可以先表示 − c -c −c 即 a ( − x % t ) + b ( − y + s ⌊ x t ⌋ ) = − c a(-x\ \%\ t)+b(-y+s\lfloor\frac{x}{t}\rfloor)=-c a(−x % t)+b(−y+s⌊tx​⌋)=−c,所以 1 − b ≤ − x ≤ − 1 , 1 ≤ − y ≤ a − 1 1-b\leq -x\leq -1,1\leq -y\leq a-1 1−b≤−x≤−1,1≤−y≤a−1,所以的所以 1 ≤ x ≤ b − 1 , − a + 1 ≤ y ≤ − 1 1\leq x\leq b-1,-a+1\leq y\leq-1 1≤x≤b−1,−a+1≤y≤−1,这个范围正好就是前面求得的范围,所以正好一一对应。

证毕

6

NKOJ 小凯的疑惑 Plus相关推荐

  1. 2017提高组D1T1 洛谷P3951 小凯的疑惑

    洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...

  2. 2017noip小凯的疑惑

    一道比较好的数学竞赛题..... 看到这个题,我立马就想到了暴力算法,但是数据好像点大,于是我们可以自己模拟算一个计算公式 这儿有几张图可以使用 我们以a=7,b=3为例. 说明一下,是按照 0,1, ...

  3. 【整数与除数】小凯的疑惑

    素数:大于1的自然数中,除1和它本身以外不再有其他因数 最大公约数:两个或多个整数共有约数中最大的一个 欧拉函数:对于正整数n,欧拉函数是小于n的正整数中与n互质的数的数目 题目链接: P3951 [ ...

  4. P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目

    [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 题目背景 NOIP2017 提高组 D1T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每 ...

  5. 【NOIP2017提高组】小凯的疑惑

    小凯的疑惑 题目背景 NOIP2017提高组 DAY1 T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无 ...

  6. 【提高组NOIP2017】小凯的疑惑(附证明)

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

  7. 【NOIP 2017 提高组 DAY1 T1】小凯的疑惑

    emmm貌似过不了多久就要去考NOIP了,于是我终于开始刷往年的题了 [题目] 题目描述: 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种 ...

  8. 小凯的疑惑(扩展欧几里得)

    小凯的疑惑 a , x , b , y , gcd(a,b)   扩展欧几里得啊!!! 对于任何k(k为正整数)  一定存在x,y 满足 ax+by=k; 想想扩展欧几里得 ax+by=gcd(a,b ...

  9. 信息学奥赛一本通——1899:【17NOIP提高组】小凯的疑惑

    文章目录 1899:[17NOIP提高组]小凯的疑惑 [题目描述] [输入] [输出] [输入样例] [输出样例] [提示] [样例说明] [数据范围] 代码 1899:[17NOIP提高组]小凯的疑 ...

最新文章

  1. 利用SQL索引提高查询速度
  2. if/ else 你真的会吗?
  3. 【Socket网络编程】17. recv() 函数详解
  4. ELK三件套安装实践之路(1)
  5. wxWidgets:进程间通信
  6. nginx php fpm socket,php-fpm 使用 socket 方式和 nginx 通讯,(速度优化)
  7. python子类继承父类特性,pycharm上面已经提示继承了,为什么会报没有该特性的错误?
  8. java类输出_java的输出类
  9. 51 nod 1439 互质对(Moblus容斥)
  10. grub2 中的boot命令
  11. 继电保护原理1.1-电流、方向保护
  12. 白盒测试——静态白盒测试
  13. DCDC中电感的计算
  14. 飞鸽快递系统代码_中通快递港股上市募资约96亿港元,董事长赖梅松认为股票代码2057寓意开启新征程...
  15. 全面了解三极管——三极管用作开关管2
  16. java爆炸图片切换,JavaScript实现爆炸碎片的 图片切换 效果
  17. python 手机号码归属 ip地址查询
  18. Head first jQuery读书笔记
  19. python技术面试题(十一)
  20. 关于图文识别功能相关技术的实现

热门文章

  1. 文本信息事件信息抽取的方法
  2. 朵朵的小三班全体老师致家长一封信
  3. 【Ian Goodfellow课件】卷积网络
  4. HR202湿敏电阻总结与程序整理
  5. 艾永亮:超级产品方法论教你专业的需求分析法
  6. 软件设计师刷题知识点-算法部分
  7. 山东大学软件学院数据结构(考试)——期末考试回忆版
  8. Tivaware中MAP前缀函数与ROM前缀函数的区别
  9. win10如何显示文件扩展名
  10. csharp可以用来做网页吗_Csharp网页应用程序