2 条题解
-
0
📝 题目大意
在一条有 个车站的线路上,列车只能单向行驶(上行从 到 ,下行从 到 )。给定起点 、终点 和中间站 ,判断在从 到 的途中是否会经过 。
💡 解题思路
- 题目分析:由于列车只能沿一个方向行驶,从 到 的路径必然经过 和 之间的所有车站。因此问题转化为: 是否在 和 之间(含端点)? 的值实际上不影响结果,唯一的约束是 互不相同且 ,数据范围极小。
- 算法推导:
- 令
low = min(X, Y),high = max(X, Y),则区间 表示从 到 经过的所有车站范围。 - 若 满足
low <= Z && Z <= high,则输出"Yes",否则输出"No"。
- 令
- 边界与细节:
- 可能大于 (下行方向),取
min/max统一处理。 - 互不相同,无需考虑等于端点的情况(但代码中
<=仍可兼容)。
- 可能大于 (下行方向),取
⏱️ 复杂度分析
- 时间复杂度:
- 空间复杂度:
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int N, X, Y, Z; cin >> N >> X >> Y >> Z; // 计算 X 和 Y 之间的区间范围 int low = min(X, Y); int high = max(X, Y); // 判断 Z 是否在该区间内 if (low <= Z && Z <= high) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
- 1
信息
- ID
- 792
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 2
- 已通过
- 2
- 上传者