hdoj-2544 最短路【dijkstra】

题目http://acm.hdu.edu.cn/showproblem.php?pid=2544

模板题

#include<cstdio>
#include<cstring>//memset
#include<algorithm>//min
#define INF 0x3f3f3f3f
#define maxn 110
using namespace std;//algorithm
int n,m,map[maxn][maxn],dis[maxn];//map[][]两点之间的距离  dis[]起始点(源点)到当前点的距离
bool visit[maxn];//判断该点是否被访问 

void dijkstra(int s)
{
	int next;//下一个进入(最短距离) V集合的点
	memset(visit,0,sizeof(visit));// 一开始 V集合中无任何元素
//	memset(map,INF,sizeof(map));
	for(int i=1;i<=n;i++)//dis初始化  起始点(源点)到当前点的距离
		dis[i]=map[s][i];
	visit[s]=true;//将源点放入集合V
	dis[s]=0;//源点到源点的距离为0
	for(int i=1;i<n;i++)//已经把U集合中的一个点存入V集合 最多进行n-1次寻找最小值
	{
		int temp=INF;// 一开始默认两点之间的距离为INF
		for(int u=1;u<=n;u++)
		{
			if(!visit[u]&&dis[u]<temp)//找最小值(该点不在V集合 并且 该点到源点的距离小于 当前值 )
			{
				temp=dis[u];
				next=u;
			}
		}
		visit[next]=true;//将离源点最近的点存入V集合
		for(int u=1;u<=n;u++)//松弛
		{
			if(!visit[u])
				dis[u]=min(dis[u],dis[next]+map[next][u]);
		}
	}
}

int main()
{
	int a,b,c;
	while(scanf("%d%d",&n,&m),n,m)
	{
		memset(map,INF,sizeof(map));// 不能在dijkstra()中初始化  对map[][]赋值前初始化
		while(m--)
		{
			scanf("%d%d%d",&a,&b,&c);
			if(map[a][b]>c)//避免重复   上面初始化为INF map仍为INF表示未走过这条路
				map[a][b]=map[b][a]=c;
		}
		dijkstra(1);
		printf("%d\n",dis[n]);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 21:14:16

hdoj-2544 最短路【dijkstra】的相关文章

ACM: HDU 2544 最短路-Dijkstra算法

HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<

hdu 2544 最短路 Dijkstra

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间,要求输出起点到终点的最短时间. /* 最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 35043 Accepted Submission

HDU 2544 最短路 Dijkstra、Floyd、Bellman-Ford、SPFA算法

原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 43669    Accepted Submission(s): 19216 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-s

HDOJ 2544 最短路(最短路径 dijkstra算法)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 42716    Accepted Submission(s): 18715 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找

hdu 2544 最短路 dijkstra模板

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 38804    Accepted Submission(s): 16925 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最

hdoj 2544 最短路

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 38585    Accepted Submission(s): 16862 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找

HDU 2544最短路dijkstra模板题

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 33657    Accepted Submission(s): 14617 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找

hdoj 2544 最短路(最短路+Dijkstrea算法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路分析:该问题给定一个无向图,要求求从起始点到终点的最短路径长度:可以使用dijkstra算法求出该起始点到其他所有点的最短距离: 代码如下: #include <queue> #include <climits> #include <cstdio> #include <vector> #include <utility> #include

hdu 2544 最短路(Dijkstra Or Floyd Or dfs)

Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路.N=M=0表示输入结束.接下来M行,每行包

hdoj 2544 最短路 【最短路径模板题】

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 33752    Accepted Submission(s): 14662 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找