题目大意:给一个地区的地图,上面有若干路口,每个路口因为红灯的缘故要耽误一些时间,给出起点和终点,找出最短路径使得耽误时间最短。

  单源最短路问题,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的更多相关文章

  1. UVA 617 - Nonstop Travel(数论+暴力枚举)

    题目链接:617 - Nonstop Travel 题意:给定一些红绿灯.如今速度能在30-60km/h之内,求多少个速度满足一路不遇到红灯. 思路:暴力每个速度,去推断可不能够,最后注意下输出格式就 ...

  2. 【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)

    [题意] 有n个绿洲, m条道路,每条路上有一个温度,和一个路程长度,从绿洲s到绿洲t,求一条道路的最高温度尽量小, 如果有多条, 选一条总路程最短的. InputInput consists of ...

  3. uva 10816 Travel in Desert(简单的好题~两种方法)

    题意: 给出 一个图 点与点之间的路径上有两个权值 路径长度和温度 要求在所走路径中的温度的最大值最小的前提下 走最短路径 解题思路1: 首先用 最小生成树 的方法走出 最小瓶颈路 .把在这期间用到的 ...

  4. 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 ...

  5. UVA 12950 : Even Obsession(最短路Dijkstra)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. UVA 590 二十一 Always on the run

     Always on the run Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit ...

  7. 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。

    这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...

  8. 【UVA 1411】 Ants (KM)

    Young naturalist Bill studies ants in school. His ants feed onplant-louses that live on apple trees. ...

  9. uva 116 Unidirectional TSP (DP)

    uva 116 Unidirectional TSP Background Problems that require minimum paths through some domain appear ...

随机推荐

  1. Chapter 1 First Sight——15

    The red-haired woman looked up. "Can I help you?" 红头发的女人抬头看了一眼说,有什么我能帮助你的吗? "I'm Isab ...

  2. edittext判断获取焦点 有焦点显示clear

    mPhoneEt.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange( ...

  3. FACE++学习二、获得face属性

    http://blog.csdn.net/lyq8479/article/details/17362685 为了防止网页丢失还是自己保存一份安全一点 人脸检测API介绍 在Face++网站的“API文 ...

  4. BroadcastReceiver的两种注册方式之------动态注册

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  5. 简单的java高斯模糊算法

    import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOEx ...

  6. Struts2--Action属性接收参数

    1. JSP文件调用格式: <a href="user/user!add?name=a&age=8">添加用户</a> 2. struts.xml文 ...

  7. form2js的使用(续BootstrapTable)

    通过收集表单数据,并且转换为json格式,实现表格的查询. 引入插件:不要忘记引入jquery. <script src="${ctx}/assets/plugins/form2js/ ...

  8. Hibernate---O/R Mapping

    1. JDBC数据库繁琐 2. sql语句不是面向对象 3. 可以在对象和关系表之间建立关联简化编程 4. O/R Mapping可以简化编程, 跨越数据库平台 比较流行的O/R Mapping Fr ...

  9. Quick Cocos2dx 调试问题

    最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一 ...

  10. PHPCMS v9 实现首页,列表页,内容页调用点击量方法

    大家好,今天有点闲,看很多朋友经常问PHPCMS v9 首页,列表页,内容页调用点击怎么弄,打算抽时间把代码全部归纳出来,以便大家日后使用,如下: 1,首页调用点击量 {pc:content acti ...