202606-去旅行(luogu-B4551)
GESP C++一级,2026年6月真题,基础运算和条件判断,难度⭐,洛谷难度入门。
luogu-B4551 [GESP202606 一级] 去旅行
题目要求
题目描述
快暑假了,小杨同学正在计划出去旅行,前往目的地的方案多种多样,小杨同学想知道如何前往目的地最便宜。
小杨同学住在 市,旅行目的地是 市,小杨同学前往目的地有三种方案:
- 从 市直飞 市;
- 从 市坐高铁到 市,然后坐飞机到 市;
- 从 市坐高铁到 市,然后坐高铁到 市。
请帮小杨同学求出最便宜的出行方案的价格。
输入格式
输入包含 行,每行一个正整数:
- 第 行的正整数表示「从 市直飞 市」的价格;
- 第 行的正整数表示「从 市坐高铁到 市」的价格;
- 第 行的正整数表示「从 市坐飞机到 市」的价格;
- 第 行的正整数表示「从 市坐高铁到 市」的价格。
输出格式
输出一个正整数,表示 种方式中,最便宜的出行方案的价格。
输入输出样例 #1
输入 #1
999
105
699
588输出 #1
693输入输出样例 #2
输入 #2
9
3
8
7输出 #2
9说明/提示
样例解释 1
方案 . 直飞价格为 ;
方案 . 高铁转飞机价格为 ;
方案 . 高铁的价格为 ;
因此最便宜的价格是 。
样例解释 2
方案 . 直飞价格为 ;
方案 . 高铁转飞机价格为 ;
方案 . 高铁的价格为 ;
因此最便宜的价格是 。
数据范围
所有输入均为正整数,且不超过 。
题目分析
解题思路
本题的解题思路如下:
问题本质:
- 输入 个正整数,分别为直飞价格、A→C 高铁价格、C→B 飞机价格、C→B 高铁价格
- 计算三种出行方案的总价,输出最小值
解题关键 — 计算并比较三种方案的价格:
- 方案 (直飞):价格为第 个输入值
- 方案 (高铁转飞机):价格为第 个 + 第 个输入值
- 方案 (全程高铁):价格为第 个 + 第 个输入值
- 比较三者取最小值即可,可用
min函数或if语句实现
复杂度分析:
- 时间复杂度:,只需常数次运算
- 空间复杂度:,只需要存储几个整数变量
示例代码
#include <iostream>
int main() {
// 声明变量存储四个价格
int a, b, c, d;
// 从标准输入读取四个价格
// a: A市直飞B市, b: A市高铁到C市, c: C市飞机到B市, d: C市高铁到B市
std::cin >> a >> b >> c >> d;
// 计算三种方案的价格
int plan1 = a; // 方案1:直飞
int plan2 = b + c; // 方案2:高铁转飞机
int plan3 = b + d; // 方案3:全程高铁
// 求三种方案中的最小值
int minCost = plan1;
if (plan2 < minCost) {
minCost = plan2;
}
if (plan3 < minCost) {
minCost = plan3;
}
// 输出最便宜的价格
std::cout << minCost;
return 0;
}本文由coderli.com原创,按照CC BY-NC-SA 4.0 进行授权
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP认证交流QQ群: 688906745
GESP/CSP 认证学习微信公众号

最后更新于