洛谷P13554题解

分析

题意:小 C 要给小 G 买至少 aa 个奶龙玩偶,玩偶原价是每个 xx 元。不过有个促销活动:如果单次买满 yy 个,每个的单价就降到 zz 元,其中 zxz \le x。我们需要算出小 C 最少要花多少钱。

要找到最少花费,得考虑两种可能的购买方案,然后选便宜的那个:

  1. 不凑促销:直接买刚好 aa 个,按原价 xx 算,花费是 a×xa \times x

  2. 凑促销:如果买的数量 aa 已经达到或超过 yy,那就按促销价 zzaa 个,花费是 aa 乘以 zz;如果 aayy 少,那就得买 yy 个才能触发促销,花费是 y×zy \times z

最后比较这两种方案的花费,选较小的那个就是答案。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;
int main() {
int x, y, z, a;
cin >> x >> y >> z >> a;
int p1 = a * x, p2 = 0;
//p1:方案1,不凑促销,按原价买 a 个的花费
//p2:方案2,凑促销的花费
if (a >= y) p2 = a * z;
else p2 = y * z;
cout << min(p1, p2);
return 0;
}

洛谷P13554题解
https://lijingshu2014.github.io/2025/10/03/洛谷P13554题解/
作者
lijingshu
发布于
2025年10月3日
许可协议