洛谷P13554题解

分析

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

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

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

  2. 凑促销:如果买的数量 $a$ 已经达到或超过 $y$,那就按促销价 $z$ 买 $a$ 个,花费是 $a$ 乘以 $z$;如果 $a$ 比 $y$ 少,那就得买 $y$ 个才能触发促销,花费是 $y \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/08/21/洛谷P13554题解/
作者
lijingshu
发布于
2025年8月21日
许可协议