存钱计划(三)  

时间限制(普通/Java):1000MS/30000MS     运行内存限制:65536KByte
总提交: 18            测试通过: 16

描述

TZC的店铺比较多,上次WY随便走只要能走到就行,现在他学聪明了。WY去买东西的话,确定一家店以后,当然他先要想想怎么样走到那家店走的路最少。店与店之间是有走的方向的,从店A到店B可以,店B到店A未必可以。店与店之间是有一定距离的。

上面就是路线,为方便起见,店铺都用数字表示,0表示WY的起点,店与店之间以及起点与店距离用d表示。WY从0开始到4店铺  那么最短路线为0-->3-->2-->4  总长为 60。

如果从0店铺开始到1店铺最短路线只有0-->1  总长 10。

当然也有可能没有路的情况。

输入

输入有多组测试数据。

每组数据的第一行为整数n(n<=10),表示店铺总数。所有店铺的编号为0~n-1。

接下来有若干行,每行为3个整数
a b t 
表示a编号的店铺走向b编号的店铺之间的一条路径,长度为t。0<=a,b<n(为有向路径,不能反向行走)。

当a b t的值为0 0 0 表示店铺之间的路径输入完毕,不做任何处理。

最后一行输入店铺的编号k(k<n)

输入n为0时表示结束程序。

输出

输出从店铺0到k店铺的最短路线的长度。如果没有路的话,输出 NO WAY!

样例输入

5
0 1 10
0 3 30
0 4 100
1 2 50
2 4 10
3 2 20
3 4 60
0 0 0
4
5
0 1 10
2 0 50
0 3 10
0 0 0
2
0

样例输出

60
NO WAY!

提示

简单最短路径问题

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
const int INF = 0x7fffffff;
const int maxn = 12; int g[maxn][maxn];
int d[maxn];
bool vis[maxn];
int gn; void init() {
int i, j;
for(i = 0; i < gn; i++) {
for(j = 0; j < gn; j++) {
if(i == j) {
g[i][j] = 0;
}
else {
g[i][j] = INF;
}
}
}
} void dijkstra() {
int i, j;
for(i = 0; i < gn; i++) d[i] = INF;
d[0] = 0;
memset(vis, 0, sizeof(vis));
for(i = 0; i < gn; i++) {
int mark = -1, mindis = INF;
for(j = 0; j < gn; j++) {
if(!vis[j] && d[j] < mindis) {
mindis = d[j];
mark = j;
}
}
if(mark == -1) break;
vis[mark] = true;
// printf("mark = %d\n", mark);
for(j = 0; j < gn; j++) {
if(!vis[j] && d[mark] != INF && g[mark][j] != INF) {
d[j] = min(d[j], d[mark] + g[mark][j]);
// printf("d[%d] = %d\n", j, d[j]);
}
}
}
} int main()
{
int x, y, w;
while(scanf("%d", &gn) != EOF && gn) {
init();
while(scanf("%d%d%d", &x, &y, &w)==3) {
if(x==0 && y==0 && w==0) break;
if(g[x][y] > w) {//处理重边.
g[x][y] = w;
}
}
dijkstra();
int t;
scanf("%d", &t);
if(d[t]==INF) {
printf("NO WAY!\n");
}
else {
printf("%d\n", d[t]);
}
}
return 0;
}

TOJ 2732存钱计划(三)(单源最短路)的更多相关文章

  1. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  2. 模板C++ 03图论算法 1最短路之单源最短路(SPFA)

    3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...

  3. 【算法】单源最短路——Dijkstra

    对于固定起点的最短路算法,我们称之为单源最短路算法.单源最短路算法很多,最常见的就是dijkstra算法. dijkstra主要用的是一种贪心的思想,就是说如果i...s...t...j是最短路,那么 ...

  4. [10.26_P2] 最短路 (单源最短路应用)

    单源最短路问题拓展 Description 给你一张图,图上有 n 个点,m 条边,要你找到两个点,使其最短路恰好包含给定的 k 个点.输出这条最短路的长度,输入保证有解. 输入格式 第一行两个数 n ...

  5. 牛客编程巅峰赛S1第6场 - 黄金&钻石&王者 C.星球游戏 (单源最短路,Dijkstra)

    题意:有\(n\)个点,\(m\)条双向边,两个方向的权值都是相等的,可以从\(A\)中的某个点出发走到\(B\)中的某个点,求所有路径中的最短距离,如果A和B中没有点联通,则输出\(-1\). 题解 ...

  6. [ACM_图论] Domino Effect (POJ1135 Dijkstra算法 SSSP 单源最短路算法 中等 模板)

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  7. 用scheme语言实现SPFA算法(单源最短路)

    最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...

  8. 单源最短路_SPFA_C++

    当我们需要求一个点到其它所有点的最短路时,我们可以采用SPFA算法 代码特别好写,而且可以有环,但是不能有负权环,时间复杂度是O(α(n)n),n为边数,α(n)为n的反阿克曼函数,一般小于等于4 模 ...

  9. 【UVA1416】(LA4080) Warfare And Logistics (单源最短路)

    题目: Sample Input4 6 10001 3 21 4 42 1 32 3 33 4 14 2 2Sample Output28 38 题意: 给出n个节点m条无向边的图,每条边权都为正.令 ...

随机推荐

  1. Linux(Fedora)下NodeJs升级最新版本(制定版本)

    Linux(Fedora)下NodeJs升级最新版本(制定版本) 首先安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 升级node.js到制定版本 n ...

  2. php简易计算器实例

    <html> <head> <title>PHP实现简单计算器</title> <meta http-equiv="Content-Ty ...

  3. 2016021801 - Java内存区域学习笔记

    根据<深入理解java虚拟机>学习归纳整理学习笔记 程序计数器 用途:当前线程的字节码文件的行号指示器.(当前机场负责控制飞机降落的空管员:当前线程表示当前机场, 所执行的字节码等同于被等 ...

  4. [译]36 Days of Web Testing(一)

    [前言]最近负责的一次迭代发布中,一个小需求涉及前端JS改动,在测试这个需求的过程中忽略了浏览器兼容性测试,导致了一个线上bug.恶补下web测试,<36Days of web testing& ...

  5. VMware Workstation 不可恢复错误: (vcpu-0)

  6. MonkeyRunner 连续两次点击报“Error sending touch event”

    最近用monkeyrunner做自动化测试,遇到连续两次点击,第二次点击就会报错“Error sending touch event”. 具体做法如下: device.touch(234,112, ' ...

  7. 一起啃PRML - 1 Introduction 绪论

    一起啃PRML - 1 Introduction @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 这一部分主要是介绍一下Pattern Recogni ...

  8. Java Web项目的一般目录结构解析(eclipse)

    以上为项目名为TestProject的目录结构截图,下面主要解析WebContent下各个目录的用途: css:存放项目所需要的css文件. images:存放项目所需要的图片文件. js:存放项目所 ...

  9. (转载)Mac和iOS开发资源汇总—更新于2013-07-19

    (转载)http://beyondvincent.com/2013/07/18/resources-for-mac-and-ios-developers/ 小引 本文主要汇集一些苹果开发的资源,会经常 ...

  10. Python IDLE 清屏工具

     转载自:http://www.cnblogs.com/maybego/p/3234055.html   1.下载clearwindow.py(右击-目标另存为,直接点击会打开脚本内容). 2.拷贝c ...