#6826. 公交还是火车
公交还是火车
公交还是火车?
题目描述
小明需要走一条由 N 段道路 组成的线路。
对于每一段道路,小明都有两种交通方式可以选择:
- 火车:耗时为
Train[i] - 公交:耗时为
Bus[i]
小明希望从起点走到终点,使得总耗时最少。
请你计算小明走完全程所需要的最少时间。
输入格式
第一行:
N
表示道路的段数。
第二行:
Train[1] Train[2] ... Train[N]
表示每一段道路乘坐火车所需要的时间。
第三行:
Bus[1] Bus[2] ... Bus[N]
表示每一段道路乘坐公交所需要的时间。
输出格式
输出一个整数:
表示走完全程的最少总时间。
数据范围
1 ≤ N ≤ 100000- 每段时间均为正整数。
- 答案可能较大,请使用 64 位整数 保存。
C++:
long long
样例 1
输入
4
5 7 3 8
6 4 2 10
输出
19
解释
每一段选择耗时更短的交通方式:
| 路段 | 火车时间 | 公交时间 | 选择 | 耗时 |
|---|---|---|---|---|
| 第1段 | 5 | 6 | 火车 | 5 |
| 第2段 | 7 | 4 | 公交 | 4 |
| 第3段 | 3 | 2 | 2 | |
| 第4段 | 8 | 10 | 火车 | 8 |
总时间:
5 + 4 + 2 + 8 = 19
样例 2
输入
3
3 2 7
4 2 1
输出
6
解释
选择:
- 第1段:火车
3 - 第2段:火车
2 - 第3段:公交
1
总时间:
3 + 2 + 1 = 6
样例 3
输入
5
10 20 30 40 50
9 21 29 100 49
输出
117
解题思路
每一段道路之间互不影响。
第 i 段:
可以选择:
Train[i]
或者:
Bus[i]
为了让总时间最小,第 i 段一定选择:
min(Train[i], Bus[i])
最后将所有路段的最小时间相加即可。
相关
在以下作业中: