乘公交车换乘,选路线,花最少时间
来源:互联网 发布:linux mint 忘记密码 编辑:程序博客网 时间:2024/04/27 04:16
遇到一道笔试题,笔试的时候没有解出来,大概记了下题目,后面花时间解出来,但没有环境,只通过了demo。
题目大概是这样的:
题目描述:小明要从家里去看奥运会,中途要换乘公交车,有很多条路线,不同路线花费不同时间,要求找一条能到达终点的乘车路线,且花费的时间最少。
输入:第一行输入终点所在的站m(假设起点为0,m为一个自然数)和可供选择的路线的条数n
接下来为n行,每行的内容为一条路线的起点所在的站,终点所在的站,以及花费的时间。
输出:最少花费的时间(好像数据都有解)。
示例:
6 5
0 2 5
1 4 3
2 6 4
4 6 1
2 4 3
思路:我笔试的时候知道是动态规划,但是心虚感觉不够时间去做,因为自己不是很熟练,后面花点时间,用动规解出来了
#include<bits/stdc++.h>using namespace std;int m,n;int mintime=0;vector<int> start,end,cost;int getmintime(int m,vector<int> start,vector<int> end,vector<int> cost){if(m==0){return 0;}vector<int> tmp;for(int i=0;i<n;i++){if(end[i]==m){tmp.push_back(i);}}if(tmp.size()==0){return 1000;//路线走不通则返回一个大数,这样肯定不会选择这个值 }int min=cost[tmp[0]]+getmintime(start[tmp[0]],start,end,cost);for(int i=1;i<tmp.size();i++){int now=cost[tmp[i]]+getmintime(start[tmp[i]],start,end,cost);if(now<min){min=now;}}return min;}int main() {cin>>m>>n;for(int i=0;i<n;i++){int t;cin>>t;start.push_back(t);cin>>t;end.push_back(t);cin>>t;cost.push_back(t);}cout<<getmintime(m,start,end,cost); return 0;}代码风格不是很严谨,有不当之处,欢迎指出来~
阅读全文
0 0
- 乘公交车换乘,选路线,花最少时间
- 最少换乘
- 最少换乘
- 乘公交车
- 公交车换乘算法
- 公交车路线查询系统后台数据库设计——换乘算法改进与优化
- 公交车路线查询系统后台数据库设计--换乘算法改进与优化
- 给定两个站点,如果没有直达的路线,如何找到换乘次数最少的路线?
- 最少换乘 第八届
- NYOJ 1238 最少换乘
- NYOJ 1238 最少换乘
- NYOJ-1238-最少换乘
- [HNOI2002] 公交车路线
- 飞机最少换乘次数问题
- 飞机最少换乘次数问题
- NOJ_1049 飞机最少换乘次数
- nyoj1238 最少换乘 最短路
- 飞机最少换乘(迪杰斯特拉实验)
- 简单的C++链表类
- 大数据学习11:Maven编译报错以及解决方法,配置aliyun库
- python
- 27. Remove Element
- 谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?
- 乘公交车换乘,选路线,花最少时间
- 成为一名Java高级架构师到底需要学习什么?
- JDBC连接SQL Server数据库的封装类
- <9/7>集训周记
- Tomcat 设置URI默认字符集为UTF-8
- PHP之简单实现MVC框架
- 2017.9.7
- struts2值栈的理解
- J2EE基础篇——十三个规范