目录
题目
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。
现在小凯想知道:
在无法准确支付的物品中,最贵的价值是多少金币?
共有多少种无法支付的物品?
注意:输入数据保证存在小凯无法准确支付的商品。
输入格式
输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。
对于 30% 的数据:1 ≤ a,b ≤ 50;
对于 60% 的数据: 1 ≤ a,b ≤ 10,000;
对于 100% 的数据:1 ≤ a,b ≤ 1,000,000,000。
输出格式
输出 2 个整数,分别表示 2 个问题的答案。
分析
问题 1
不妨设需要 个
元,
个
元
设 ,令
,则
当 时,
可用
,
表示出,不符合题意
当 时,
可取得最大值,此时
,若
取最大值
,
最大
此时 ,化简得
证毕
问题 2(NKOJ加问)
,
必有一奇数
1. 若 ,
其中一个为偶数
则有 或
种无法支付的物品
---------------------------------------------------------------------
结果均为
2. ,
均为奇数
则有 种无法支付的物品
无法支付的物品共
种
证毕
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a,b;
signed main()
{
cin>>a>>b;
cout<<a*b-a-b<<" "<<(a-1)*(b-1)/2;
return 0;
}
该问题讨论了当只有互素的两种面值金币时,无法准确支付的商品中最高价格及无法支付的商品种类。通过数学分析,得出最贵商品价值为两面值乘积减去两面值之和,无法支付的物品种类为(a-1)(b-1)/2。
1487

被折叠的 条评论
为什么被折叠?



