题目链接
https://pintia.cn/problem-sets/994805342720868352/problems/994805464397627392
题解
题目要求
- 输入
- N:正整数,不超过500,结点的数量,索引为[0,N-1]
- M:正整数,边的数量
- S:起点索引
- D:终点索引
- M条边
- 输出
- 最短路径经过的结点
- 总距离
- 总成本
解题思路
该题在普通最短路径题目基础上补充了2点
我是先做了PAT甲级1018Public Bike Management,这两题很相似,1018更难,这题更简单。
输出最短路径经过的结点
因为最终的最短路径只有一条,所以保存最短路径中每个结点的前一个结点,最终从D往回遍历即可
优先考虑距离,再考虑成本
通过if语句实现
代码
最后生成path时我是递归存入vector,其实也可以直接迭代生成。
1 | // Problem: PAT Advanced 1030 |
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!