//代码:

//方法1:Dijkstra's Algorithm

#include<stdio.h>
#include<math.h>
#include<string.h>
#define INF 0xfffffff
#define N 110
#define min(a, b)(a < b ? a : b) int maps[N][N];
int d[N], visit[N];
int n, m; void Init()
{
int i, j;
memset(visit, , sizeof(visit));
for(i = ; i <= n ; i++)
{
d[i] = INF;
for(j = ; j <= n ; j++)
maps[i][j] = INF;
}
} void Dij()
{
int i, j, x, min;
d[] = ;
for(i = ; i <= n ; i++)
{
min = INF;
for(j = ; j <= n ; j++)
{
if(!visit[j] && d[j] < min)
{
min = d[j];
x = j;
}
}
visit[x] = ;
for(j = ; j <= n ; j++)
{
if(!visit[j] && d[j] > d[x] + maps[x][j])
d[j] = d[x] + maps[x][j];
}
}
} int main()
{
int i, a, b, c;
while(scanf("%d%d", &n, &m), m + n != )
{
Init();
for(i = ; i <= m ; i++)
{
scanf("%d%d%d", &a, &b, &c);
maps[a][b] = min(maps[a][b], c);
maps[b][a] = maps[a][b];
}
Dij();
printf("%d\n", d[n]);
}
return ;
}//单元最短路 //方法2:弗洛伊德算法 #include<stdio.h>
#include<string.h>
#define N 110
#define INF 0xfffffff
#define min(a, b) (a < b ? a : b) int maps[N][N];
int n, m; void Init()
{
int i, j;
for(i = ; i <= n ; i++)
for(j = ; j <= n ; j++)
maps[i][j] = INF;
} void Floyd()
{
int i, k, j;
for(k = ; k <= n ; k++)
{
for(i = ; i <= n ; i++)
{
for(j = ; j <= n ; j++)
maps[i][j] = min(maps[i][j], maps[i][k] + maps[k][j]);
}
}
} int main()
{
int a, b, c, i;
while(scanf("%d%d", &n, &m), m + n != )
{
Init();
for(i = ; i <= m ; i++)
{
scanf("%d%d%d", &a, &b, &c);
maps[a][b] = min(maps[a][b], c);
maps[b][a] = maps[a][b];
}
Floyd();
printf("%d\n", maps[][n]);
}
return ;
}//多元最短路

HDU 2544 最短路 http://acm.hdu.edu.cn/showproblem.php?pid=2544的更多相关文章

  1. HDU 4911 http://acm.hdu.edu.cn/showproblem.php?pid=4911(线段树求逆序对)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911 解题报告: 给出一个长度为n的序列,然后给出一个k,要你求最多做k次相邻的数字交换后,逆序数最少 ...

  2. KMP(http://acm.hdu.edu.cn/showproblem.php?pid=1711)

    http://acm.hdu.edu.cn/showproblem.php?pid=1711 #include<stdio.h> #include<math.h> #inclu ...

  3. HDU-4632 http://acm.hdu.edu.cn/showproblem.php?pid=4632

    http://acm.hdu.edu.cn/showproblem.php?pid=4632 题意: 一个字符串,有多少个subsequence是回文串. 别人的题解: 用dp[i][j]表示这一段里 ...

  4. 待补 http://acm.hdu.edu.cn/showproblem.php?pid=6602

    http://acm.hdu.edu.cn/showproblem.php?pid=6602 终于能够看懂的题解: https://blog.csdn.net/qq_40871466/article/ ...

  5. HDU-1257 导弹拦截系统 http://acm.hdu.edu.cn/showproblem.php?pid=1257

    Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...

  6. http://acm.hdu.edu.cn/showproblem.php?pid=2579

    #include<stdio.h> #include<string.h> #include<queue> #define N 110 int m, n, k, x1 ...

  7. KMP应用http://acm.hdu.edu.cn/showproblem.php?pid=2594

    riemann与marjorie拼接后riemannmarjorie前缀与后缀公共部分为 rie 长度为 3(即next[l] = next[14]的值,l为拼接后的长度)但:aaaa与aa拼接后aa ...

  8. HDU1973 http://acm.hdu.edu.cn/showproblem.php?pid=1973

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<queue> #inc ...

  9. HDU 1312 http://acm.hdu.edu.cn/showproblem.php?pid=1312

    #include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #de ...

随机推荐

  1. 解决eclipse-helios中Errors running builder JavaScript Validator的问题

    原文:http://blog.ywxyn.com/index.php/archives/713 解决eclipse-helios中Errors running builder JavaScript V ...

  2. UVa 409 Excuses, Excuses!

    哈哈,虽然是一道字符串水题,可是拿到一个1A还是很开心的! 题意就是给一些keywords(子串)和Excuse(母串),然后输出包含keywords最多的Excuse,如果相等的话,按任意顺序全部输 ...

  3. 如何向hadoop集群定时提交一个jar作业?

    除了使用Hive,Pig来执行一个MapReduce任务,不需要专门的把项目打成jar包,提交执行,或者定时执行,因为Hive,Pig这些开源框架已经,帮我们自动打包上传了. 而有些时候,我们自己手写 ...

  4. Service完全解析(转)

    今天我们来讲一下Android中Service的相关内容. Service在Android中和Activity是属于同一级别上的组件,我们可以将他们认为是两个好哥们,Activity仪表不凡,迷倒万千 ...

  5. Wireshark基本介绍和学习TCP三次握手(转)

    http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇 ...

  6. C++ 编写Windows service

    最近实现一个windows server端守护进程启动服务功能(c++实现),遇到了一些问题,记录一下 1. 启动Service实现代码: int _tmain(int argc, TCHAR* ar ...

  7. linux 命令部分说明

    shell 文件头格式   #! /bin/sh 定义变量  dir_tmp=/tmp/xxx 级联创建 mkdir -p /etc/aaa/bbb 阻塞命令 等待用户输入回车  继续    read ...

  8. 【转】Github轻松上手2-如何使用命令行创建和管理repo

    转自:http://blog.sina.com.cn/s/blog_4b55f6860100zzhd.html 如果你对这种怀旧的方式很感冒,不妨参考这里: http://help.github.co ...

  9. vs2012编译出错“LC.exe”已退出解决方法

    “LC.exe”已退出,代码为 -1. 解决方法: 将项目Properties下的licenses.licx文件删除,重新编译即可.

  10. 分享15款为jQuery Mobile定制的插件

    jQuery Mobile 1.0 已经发布了, 做为jQuery的移动设备类库, 并且依靠着jQuery这个及其受欢迎的类库,必将带给大家不一样的使用体验,基于jQuery Mobile的插件开发必 ...