浪里个浪 FZU - 2261
TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划。
现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道。他已经预先规划好了一些点作为旅游的起点和终点,他想选择其中一个起点和一个终点,并找出从起点到终点的一条路线亲身体验浪的过程。但是他时间有限,所以想选择耗时最小的,你能告诉他最小的耗时是多少吗?
Input
包含多组测试数据。
输入第一行包括两个整数n和m,表示有n个地点,m条可行路径。点的编号为1 - n。
接下来m行每行包括三个整数i, j, cost,表示从地点i到地点j需要耗时cost。
接下来一行第一个数为S,表示可能的起点数,之后S个数,表示可能的起点。
接下来一行第一个数为E,表示可能的终点数,之后E个数,表示可能的终点。
0<S, E≤n≤100000,0<m≤100000,0<cost≤100。
Output
输出他需要的最短耗时。
Sample Input
4 4 1 3 1 1 4 2 2 3 3 2 4 4 2 1 2 2 3 4
Sample Output
1 em 这个题开始就想到了炒鸡源点和炒鸡汇点,结果偷懒不写队列优化T了,看到网上很多用spfa的,还有用网络流的大佬,网络流我还不会,这里附上队列优化迪杰斯特拉的解法
1 #include<iostream> 2 #include<cstdio> 3 #include<vector> 4 #include<string.h> 5 #include<queue> 6 #include<utility> 7 #define INF 0x3f3f3f3f 8 9 using namespace std; 10 typedef pair<int,int> P; 11 12 struct node 13 { 14 int to,w; 15 node(int v,int val):to(v),w(val) {} 16 }; 17 18 int n,m; 19 const int maxn = 100007; 20 int vis[maxn]; 21 int dist[maxn]; 22 vector<node>g[maxn]; 23 24 void init() 25 { 26 27 int a,b,c; 28 for(int i=0; i<=n; i++)g[i].clear(); 29 for(int i=0; i<m; i++) 30 { 31 scanf("%d%d%d",&a,&b,&c); 32 g[a].push_back(node(b,c)); 33 } 34 scanf("%d",&a); 35 for(int i=0; i<a; i++) 36 { 37 scanf("%d",&b); 38 g[0].push_back(node(b,0)); 39 } 40 scanf("%d",&a); 41 for(int i=0; i<a; i++) 42 { 43 scanf("%d",&b); 44 g[b].push_back(node(n+1,0)); 45 } 46 } 47 48 void dijkstra(int start) 49 { 50 priority_queue<P,vector<P>,greater<P> >que; 51 memset(dist,INF,sizeof(dist)); 52 dist[start] = 0; 53 que.push(P(0,start)); 54 while(!que.empty()) 55 { 56 P p = que.top(); 57 que.pop(); 58 int v = p.second; 59 if(dist[v]<p.first)continue; 60 for(int i=0; i<g[v].size(); i++) 61 { 62 node e = g[v][i]; 63 if(dist[e.to] > dist[v] + e.w) 64 { 65 dist[e.to] = dist[v] + e.w; 66 que.push(P(dist[e.to],e.to)); 67 } 68 } 69 } 70 } 71 72 int main() 73 { 74 while(~scanf("%d%d",&n,&m)) 75 { 76 init(); 77 dijkstra(0); 78 printf("%d\n",dist[n+1]); 79 } 80 return 0; 81 }
View Code
转载于:https://www.cnblogs.com/iwannabe/p/9132490.html
浪里个浪 FZU - 2261相关推荐
- FZU 2261 浪里个浪
FZU 2261 浪里个浪 TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交 ...
- FZU - 2261 浪里个浪 ( 最短路
浪里个浪 题目描述 TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都 ...
- FZU 2261 浪里个浪 (多源最短路)(福州大学第十四届程序设计竞赛)
浪里个浪 Problem Description TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市 ...
- Problem 2261 浪里个浪(多起点与多终点问题)
Problem 2261 浪里个浪 链接:http://acm.fzu.edu.cn/problem.php?pid=2261 Accept: 15 Submit: 31 Time Limit: 15 ...
- FZU2261 浪里个浪(最短路,spfa)(福州大学第十四届程序设计竞赛)
题目: Problem 2261 浪里个浪 Accept: 42 Submit: 108 Time Limit: 1500 mSec Memory Limit : 32768 KB P ...
- FZU - 2261 浪里个浪(多源最短路SPFA)
TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道.他已经预先 ...
- 浪里个浪 FZU - 2261 (多源最短路问题)
TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道.他已经预先 ...
- 福州大学第十四届程序设计竞赛_重现赛 I - 浪里个浪 (多源最短路)
TonyY是一个喜欢到处浪的男人,他的梦想是带着兰兰姐姐浪遍天朝的各个角落,不过在此之前,他需要做好规划. 现在他的手上有一份天朝地图,上面有n个城市,m条交通路径,每条交通路径都是单行道.他已经预先 ...
- 浪里个浪:Google 北京刚搬进新办公室 走去瞧瞧!
文章出处:http://bbs.chongbuluo.com/thread-1866-1-1.html 2016 年 8 月,Google 中国的北京办公室正式搬出科建大厦,挪到了融科资讯中心.8 月 ...
最新文章
- python traceback安装_Python错误:Traceback (most recent call last):感觉是软件出了问题
- 如何在电脑中配置jdk环境变量
- 小谈多生成树协议--MSTP
- stm32中用到的实时系统_适合STM32的三大嵌入式操作系统。
- C++之Lambda表达式
- Java 冒泡排序实现及口诀
- “Word自动更改后的内容保存到通用文档模板上。是否加载该模板?“的解决办法...
- SpringCloud Hystrix的超时时间配置以及监控平台搭建
- 怎么设置某个用户生成hdfs文件的权限_管理 HDFS 服务
- vscode:四个乱码问题及解决方法
- 爱情保卫战 - 爱情保鲜剂 语录收集
- 安卓webview开发简介
- Learning the Model Update for Siamese Trackers论文解读
- 鑫迪自助建站系统1.1版网站源码完整源码
- 别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...
- pyspark学习——统计《少年派的奇幻漂流》(lifeofpi)词频
- win10如何删除万能输入法
- HyperMesh二次开发教程 - 前言
- vivoX30是android5的吗,深度剖析揭秘opporeno5质量和vivox30区别是?选哪个更好?独家揭秘报道...
- 小米手机解BL锁时 进入fastboot之后 PC端手机解锁工具一直显示未连接手机
热门文章
- 科学计算机二进制算法,计算机是怎么理解二进制的?
- 斑能不能彻底去掉_用茶树精油祛痘时,千万不能做这5件事!!!
- shouji android输入法,安卓手机主流输入法对比
- C++并发编程实战(豆瓣评分5.4)
- boost 变量类型转换
- 网络名称 转换 网络地址_网络地址转换| 计算机网络
- 编写一个程序,实现将存放在AX和DX中的32位数据循环右移二进制数的4位。(DX存放高字节内容,AX存放低字节内容)
- mysql怎么消除冗余,mysql剔除冗余数据
- 栈应用_将算式转成按运算符优先级分布(代码、分析、汇编)
- IIC通信---EEPROM24C02---STMF4