zoukankan      html  css  js  c++  java
  • 专题四--1009

    1009

    题目

    Problem Description

    在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?

    Input

    输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A与路口B之间有一条路,我们的工作人员需要C分钟的时间走过这条路。
    输入保证至少存在1条商店到赛场的路线。

    Output

    对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间

    Sample Input

    2 1
    1 2 3
    3 3
    1 2 5
    2 3 5
    3 1 2
    0 0

    Sample Output

    3
    2

    题目大意

    典型的最短路问题,可以使用Dijkstra算法来解决,Dijkstra算法是典型的单源最短路径算法。
    基本的算法思想为:设置一个集合S存放已经找到最短路径的顶点,S的初始状态只包含源点v,对vi∈V-S,假设从源点v到vi的有向边为最短路径。以后每求得一条最短路径v, …, vk,就将vk加入集合S中,并将路径v, …, vk , vi与原来的假设相比较,取路径长度较小者为最短路径。重复上述过程,直到集合V中全部顶点加入到集合S中。
    注意Dijkstra算法中很重要的一点是应用到了松弛技术,看网上的资料,算法中的松弛技术有很多讲究,不过现在还是只知其然,不知其所以然
    还有其他应用于单源最短路径的算法:bellman-ford算法,spfa算法,都应用了松弛技术

  • 相关阅读:
    ios app ipv6 审核总结
    组织、结构与部分、整体
    组织
    Makefile 使用总结
    Make 命令教程
    Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
    如何从一个服务器拷文件到另一个服务器
    vi的常用命令
    linux下yum命令出现Loaded plugins: fastestmirror
    YUM常用命令介绍
  • 原文地址:https://www.cnblogs.com/liuzhanshan/p/5648583.html
Copyright © 2011-2022 走看看