NC219476. 小L的疑惑
描述
小 作为一位 在 NOIP2017 考场上看着“小凯的疑惑”产生了疑惑。
小 手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小 都有无数个。
在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。
现在小 想知道在无法准确支付的物品中,第 贵的价值是多少金币?
输入描述
三个正整数 ,它们之间用一个空格隔开,分别表示小 手中金币的面值与要求的第 大。
输出描述
输出一个整数,表示答案。注:输入数据保证存在合法解。
示例1
输入:
3 7 1
输出:
11
说明:
小 手里有面值为 和 的金币无数个,在不找零的前提下无法准确支付价值为 。
其中最贵的物品价值为 ,比 贵的物品都能买到,比如:
C++ 解法, 执行用时: 61ms, 内存消耗: 74024K, 提交时间: 2022-04-07 21:32:36
#include<bits/stdc++.h> #define ll long long using namespace std; ll n,m,k,a,b,dp[10000005]; int main() { cin>>n>>m>>k; dp[1]=n*m-n-m; a=1,b=1; for (int i=2; i<=k; i++) { dp[i]=max(dp[a]-n,dp[b]-m); if (dp[i]==dp[a]-n) a++; if (dp[i]==dp[b]-m) b++; } cout<<dp[k]; }