UVa 341 - Non-Stop Travel
题目大意:给一个地区的地图,上面有若干路口,每个路口因为红灯的缘故要耽误一些时间,给出起点和终点,找出最短路径使得耽误时间最短。
单源最短路问题,Dijkstra算法。同时还要打印路径。
#include <cstdio>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
#define INF 1e9
typedef pair<int, int> ii;
typedef vector<ii> vii; int p[]; void print_ans(int x)
{
if (p[x] != -) print_ans(p[x]);
printf(" %d", x);
} int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
int n, kase = ;
while (scanf("%d", &n) && n)
{
vector<vii > AdjList(n+);
for (int u = ; u <= n; u++)
{
int k;
scanf("%d", &k);
int v, w;
for (int i = ; i < k; i++)
{
scanf("%d%d", &v, &w);
AdjList[u].push_back(make_pair(v, w));
}
}
int src, dest;
scanf("%d%d", &src, &dest);
memset(p, -, sizeof p);
vector<int> dist(n+, INF);
dist[src] = ;
priority_queue<ii, vector<ii>, greater<ii> > pq;
pq.push(make_pair(dist[src], src));
while (!pq.empty())
{
ii top = pq.top();
pq.pop();
int d = top.first, u = top.second;
if (u == dest) break;
if (d == dist[u])
for (int j = ; j < AdjList[u].size(); j++)
{
int v = AdjList[u][j].first, w = AdjList[u][j].second;
if (dist[u] + w < dist[v])
{
dist[v] = dist[u] + w;
pq.push(make_pair(dist[v], v));
p[v] = u;
}
}
}
printf("Case %d: Path =", ++kase);
print_ans(dest);
printf("; %d second delay\n", dist[dest]);
}
return ;
}
看到书上说,由于节点数目较少,可以使用Bellman Ford算法,但是要打印路径,这个...Bellman Ford还没用过呢,打印路径...就免了吧,以后再说
UVa 341 - Non-Stop Travel的更多相关文章
- UVA 617 - Nonstop Travel(数论+暴力枚举)
		
题目链接:617 - Nonstop Travel 题意:给定一些红绿灯.如今速度能在30-60km/h之内,求多少个速度满足一路不遇到红灯. 思路:暴力每个速度,去推断可不能够,最后注意下输出格式就 ...
 - 【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)
		
[题意] 有n个绿洲, m条道路,每条路上有一个温度,和一个路程长度,从绿洲s到绿洲t,求一条道路的最高温度尽量小, 如果有多条, 选一条总路程最短的. InputInput consists of ...
 - uva 10816 Travel in Desert(简单的好题~两种方法)
		
题意: 给出 一个图 点与点之间的路径上有两个权值 路径长度和温度 要求在所走路径中的温度的最大值最小的前提下 走最短路径 解题思路1: 首先用 最小生成树 的方法走出 最小瓶颈路 .把在这期间用到的 ...
 - UVA - 1025 A Spy in the Metro[DP DAG]
		
UVA - 1025 A Spy in the Metro Secret agent Maria was sent to Algorithms City to carry out an especia ...
 - UVA 12950 : Even Obsession(最短路Dijkstra)
		
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
 - UVA 590	二十一 Always on the run
		
Always on the run Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit ...
 - 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。
		
这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...
 - 【UVA 1411】 Ants (KM)
		
Young naturalist Bill studies ants in school. His ants feed onplant-louses that live on apple trees. ...
 - uva 116 Unidirectional TSP (DP)
		
uva 116 Unidirectional TSP Background Problems that require minimum paths through some domain appear ...
 
随机推荐
- Chapter 1 First Sight——15
			
The red-haired woman looked up. "Can I help you?" 红头发的女人抬头看了一眼说,有什么我能帮助你的吗? "I'm Isab ...
 - edittext判断获取焦点 有焦点显示clear
			
mPhoneEt.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange( ...
 - FACE++学习二、获得face属性
			
http://blog.csdn.net/lyq8479/article/details/17362685 为了防止网页丢失还是自己保存一份安全一点 人脸检测API介绍 在Face++网站的“API文 ...
 - BroadcastReceiver的两种注册方式之------动态注册
			
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
 - 简单的java高斯模糊算法
			
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOEx ...
 - Struts2--Action属性接收参数
			
1. JSP文件调用格式: <a href="user/user!add?name=a&age=8">添加用户</a> 2. struts.xml文 ...
 - form2js的使用(续BootstrapTable)
			
通过收集表单数据,并且转换为json格式,实现表格的查询. 引入插件:不要忘记引入jquery. <script src="${ctx}/assets/plugins/form2js/ ...
 - Hibernate---O/R Mapping
			
1. JDBC数据库繁琐 2. sql语句不是面向对象 3. 可以在对象和关系表之间建立关联简化编程 4. O/R Mapping可以简化编程, 跨越数据库平台 比较流行的O/R Mapping Fr ...
 - Quick Cocos2dx 调试问题
			
最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一 ...
 - PHPCMS v9 实现首页,列表页,内容页调用点击量方法
			
大家好,今天有点闲,看很多朋友经常问PHPCMS v9 首页,列表页,内容页调用点击怎么弄,打算抽时间把代码全部归纳出来,以便大家日后使用,如下: 1,首页调用点击量 {pc:content acti ...