1 条题解
-
0
📝 题目大意
给定 种商品,每种商品单价 、购买数量 。计算总金额 ,若 则需额外支付运费 ,否则免运费。输出最终应付金额。
💡 解题思路
- 题目分析:,,,数据范围极小,直接模拟即可。 最大为 ,在
int范围内(约 ),无需使用long long。 - 算法推导:
- 读入 ,初始化
total = 0。 - 循环 次,每次读入 ,累加
total += P_i * Q_i。 - 判断:若
total < S,则total += K。 - 输出
total。
- 读入 ,初始化
- 边界与细节:当 时,运费为 日元(即"不少于 "包含等于的情况)。本代码使用
total < S判断,正确覆盖了 时免运费的边界。
⏱️ 复杂度分析
- 时间复杂度:,只需遍历所有商品一次。
- 空间复杂度:,仅使用常数个变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int N, S, K; cin >> N >> S >> K; int total = 0; for (int i = 0; i < N; i++) { int P, Q; cin >> P >> Q; total += P * Q; // 累加每种商品的总价:单价 × 数量 } if (total < S) { // 总金额不足 S 日元时,需要支付运费 total += K; } cout << total << endl; return 0; } - 题目分析:,,,数据范围极小,直接模拟即可。 最大为 ,在
- 1
信息
- ID
- 757
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者