FZU 2261浪里个浪
来源:互联网 发布:fashionphile 淘宝 编辑:程序博客网 时间:2024/06/16 03:17
FZU 2261 浪里个浪
TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划。
现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道。他已经预先规划好了一些点作为旅游的起点和终点,他想选择其中一个起点和一个终点,并找出从起点到终点的一条路线亲身体验浪的过程。但是他时间有限,所以想选择耗时最小的,你能告诉他最小的耗时是多少吗?
Input
包含多组测试数据。
输入第一行包括两个整数n和m,表示有n个地点,m条可行路径。点的编号为1 - n。
接下来m行每行包括三个整数i, j, cost,表示从地点i到地点j需要耗时cost。
接下来一行第一个数为S,表示可能的起点数,之后S个数,表示可能的起点。
接下来一行第一个数为E,表示可能的终点数,之后E个数,表示可能的终点。
0
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <stack>#include <queue>using namespace std;struct node{ int go,time;}a;queue <int> q;vector <node> qq[100010];int dis[100010];bool vis[100010];using namespace std;int main(){ int n,m,b,t,tt,xx; while(~scanf("%d%d",&n,&m)){ for (int i=0;i<=n;i++){ qq[i].clear(); dis[i+1]=1000000007; vis[i+1]=0; } for (int i=0;i<m;i++){ scanf("%d%d%d",&b,&a.go,&a.time); qq[b].push_back(a); } a.time=0; scanf("%d",&t); while(t--){ scanf("%d",&a.go); qq[0].push_back(a); } a.go=n+1; scanf("%d",&t); while(t--){ scanf("%d",&b); qq[b].push_back(a); } q.push(0); while(!q.empty()){ tt=q.front(); q.pop(); vis[tt]=0; for (int i=0;i<qq[tt].size();i++){ xx=dis[tt]+qq[tt][i].time; if (xx<dis[qq[tt][i].go]){ dis[qq[tt][i].go]=xx; if (vis[qq[tt][i].go]==0){ q.push(qq[tt][i].go); vis[qq[tt][i].go]=1; } } } } printf("%d\n",dis[n+1]); } return 0;}
阅读全文
1 0
- FZU 2261浪里个浪
- 浪里个浪 FZU
- 浪里个浪 FZU
- 浪里个浪 FZU
- Fzu 2261 浪里个浪【思维+最短路】
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- 系统上线问题小结
- Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径)问题
- Tomcat的初识和配置注意事项
- MYSQL性能查看(命中率,慢查询)
- DRFD_RCVC_ALWAYS_ON 设置为 TURE
- FZU 2261浪里个浪
- Java Character 类
- Swing界面菜单演示
- 【资源共享】Rockchip《U-Boot 开发指南 V3.7》
- Git 基础
- Python pip安装包的问题记录
- 使聊天机器人的对话更有营养
- 数组操作(进阶)
- Struts提供的强大的HTML标签库总结