最短路

Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 100   Accepted Submission(s) : 50

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

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

Input

输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数A,B,C(1&lt;=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

Source

UESTC 6th Programming Contest Online

1)运回T_shirt时,从一个源点到另一个点(单源单汇),直接用Dijstra( )运作

2)注意的是:   memset(dist,0x3f,sizeof(dist));//赋初值

#define INF 0x3f3f3f3f

0x3f==INF

#include <iostream>

#pragma comment (linker,"/STACK:102400000,102400000")
#define maxn 105
#define MAXN 100005
#define INF 0x3f3f3f3f
#define pi acos(-1.0)
#define eps 1e-6
using namespace std;

int n,m,tot,flag,ans;
int dist[maxn],mp[maxn][maxn],vis[maxn];

void Dijkstra()
{
    int i,j,now,mi;
    memset(dist,0x3f,sizeof(dist));
    memset(vis,0,sizeof(vis));
    dist[0]=0;
    for(i=1;i<=n;i++)   //进行n次循环(原因:每一次寻找一个最小点)
    {
        mi=INF;
        for(j=1;j<=n;j++)  //寻找最小值点以及最小值
        {
            if(!vis[j]&&mi>dist[j])
            {
                mi=dist[j];
                now=j;
            }
        }
        vis[now]=1;  //标志visit为1
        for(j=1;j<=n;j++)//更新值
        {
            if(dist[j]>dist[now]+mp[now][j])
            {
                dist[j]=dist[now]+mp[now][j];
            }
        }
    }
    ans=dist[n];
}
int main()
{
    int i,u,v,w;
    while(scanf("%d%d",&n,&m),n|m)
    {
        memset(mp,0x3f,sizeof(mp));//置初值为INF
        for(i=1;i<=m;i++)
        {
            scanf("%d%d%d",&u,&v,&w);
            mp[u][v]=mp[v][u]=w;
        }
        Dijkstra();
        printf("%d\n",ans);
    }
    return 0;
}

最短路 (Dijstra) 最短路相关推荐

  1. 最短路和次短路问题,dijkstra算法

    1 /* 2 *题目大意: 3 *在一个有向图中,求从s到t两个点之间的最短路和比最短路长1的次短路的条数之和; 4 * 5 *算法思想: 6 *用A*求第K短路,目测会超时,直接在dijkstra算 ...

  2. poj3463 最短路和次短路 计数

    这道题就是让你求出有向图中最短路和比最短路长1的路的数量, 我们求出次短路和最短路的数量即可解决这道题 /* 求s到t的最短路与次短路(这里要求只比最短路多1)的条数之和 联想到最小,次小的一种更新关 ...

  3. 什么原因导致芯片短路_PCB电路板短路的原因及解决方法-EDA/PCB-与非网

    [导读]焊接短路(如:连锡).PCB 短路(如:残铜.孔偏等).器件短路.组装短路.ESD/EOS 击穿.电路板内层微短路.电化学短路(如:化学残留.电迁移).其他原因造成的短路. 首先,了解一下常见 ...

  4. 解释一下java的短路运算,Java短路运算符和非短路运算符详解

    Java短路运算符和非短路运算符详解 时间:2017-09-15     来源:互联网 你了解Java短路运算符和非短路运算符吗?短路运算符就是我们常用的"&&". ...

  5. 你知道什么是 短路与 和 短路非吗 ???

    此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:   先来说一下 与运算 和 或运算: & 和 |: & 与 (双方都成立 ,结果才为 tru ...

  6. 短路与 短路或 不短路与 不短路或

    先来看牛客的一道题 如下语句通过算术运算和逻辑运算之后i和 j的结果是( ) int i=0; int j=0; if((++i>0)||(++j>0)) { //打印出i和j的值. } ...

  7. 针对常见的四种短路故障(单相接地短路,两相相间短路,两相接地短路,三相短路),可采取三种方法进行计算

    短路电流计算/ Matlab编程计算 针对常见的四种短路故障(单相接地短路,两相相间短路,两相接地短路,三相短路),可采取三种方法进行计算: 1.实用短路电流计算 2.对称分量法计算 3.节点导纳法计 ...

  8. 【图论算法】 最短路,次短路,k短路总结

    在图论里,最短路,次短路,k短路的问题很常见. 这里总结一下. 存图技巧 数据小,稠密图的一般用邻接矩阵 稀疏图,数据大一般用邻接表(vector,链式前向星都可) 邻接矩阵 const int ma ...

  9. 杭电 2066 一个人的旅行 最短路 Dijstra

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  10. [hiho 23]单源最短路-Dijstra算法

    题目描述 维护一个集合,集合中的元素与点u的最短距离已经确定,求出集合内元素所能到达的点到点u的距离,取最短的距离对应的点加入集合直到集合包含点v. 每次更新距离只与新加入集合的点有关. #inclu ...

最新文章

  1. 站长之家html视频播放,HTML5视频发展状况
  2. Girls and Boys
  3. leetcode 312. Burst Balloons | 312. 戳气球(暴力递归->DP)
  4. Docker-Compose 一键部署Ningx+.Net Core+Redis集群
  5. linux中文件属性mtime,linux stat (三个时间属性命令可用来列出文件的 atime、ctime 和 mtime。)...
  6. Xcode5打包静态库
  7. Linux安装jdk详细步骤
  8. 电脑开机计算机配置,电脑开机显示配置更新怎么办
  9. rsa密钥 xshell_利用xshell密钥管理服务器远程登录
  10. 项目实战--Ego微商小程序
  11. IBM Jdk环境启动jboss,出现如下错误:SunX509 KeyManagerFactory not available
  12. AutoCAD系统变量大全
  13. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码
  14. layui table数据表格中数据返回成功,但页面不显示数据内容问题
  15. Html 内嵌 选择器属性 Dom操作 JavaScript 事件
  16. python 抽奖 完全公平的随机数算法_抽奖 随机数
  17. access下如何配置两个vlan_如何一个端口设置多个VLAN
  18. 氟胶耐腐蚀油罐泵出口应用性能
  19. revit学习-视图
  20. 为什么我的iPhone iOS 15少了一些新功能

热门文章

  1. Go语言中Printf 的用法
  2. Web(servlet) 应用程序将其发布在 Web AppServer 服务器(war包)
  3. postman如何测试导入任务和导出任务
  4. 您应该购买哪款Apple Watch?
  5. Python数据处理035:结构化数据分析工具Pandas之Pandas概览
  6. 《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)
  7. 最小割与最大流(mincut amp; maxflow)
  8. 固定定位失效问题(position:fixed;固定定位)
  9. iOS App更换图标Logo(本地更换)
  10. Fisherface(FLD)人脸识别实验