洛谷P3951 小凯的疑惑

虽然答案一眼就能看出来,但是答案的证明还是比较有趣的


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

题目背景

NOIP2017 提高组 D1T1

题目描述

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

输入格式

两个正整数 ,它们之间用一个空格隔开,表示小凯中金币的面值。

输出格式

一个正整数 ,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

样例 #1

样例输入 #1

3 7

样例输出 #1

11

提示

【输入输出样例 1 说明】

小凯手中有面值为 的金币无数个,在不找零的前提下无法准确支付价值为 的物品,其中最贵的物品价值为 ,比 贵的物品都能买到,比如:

【数据范围与约定】

对于 的数据:

对于 的数据:

对于 的数据:

是对称的,答案应该也是跟 对称的一个式子,先猜 ,发现不是,然后换 ,大了,发现 正好是答案

于是猜测答案是 ,打个表发现还真是,就可以交了XD

证明

原题就是要找不满足 的最大

首先 是互素的,所以 是互不同余的(遍历了模 的完系)

所以可以知道以下的数是可以表示的:


  • ...

发现对于 的数,都可以表示

因为 对称,所以可以不妨

先看 个数,它们模 互不同余,并且模 不为 ,所以它们模 的余数一定落在 之间,所以它们模 的余数覆盖 ,所以它们都可以被表示

再往前看,即 个数,它们模 互不同余,但是这 个数只有 个数可以被表示,所以必然有一个数不能被表示出来,并且因为我们是从后往前找的,所以这个数是最大的,即答案就在其中

从最后一个开始看, ,而 并不在 中,所以这个数无法被表示,答案被找到了


img_show