hdu 2544 (最短路 Dijkstra模板题)
2016-10-20 00:30
453 查看
Dijkstra 基础模板题
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define INF 0x3f3f3f3;
int mapn[110][110],dis[110],vis[110];
void Dijkstra(int n)
{ int p,minn;
for(int i=1;i<=n;i++)
{
dis[i]=mapn[1][i];
vis[i]=0;
}
vis[1]=1;
for(int i=1;i<=n;i++)
{
minn=INF;
for(int j=1;j<=n;j++)
if(!vis[j]&&dis[j]<minn)
{
minn=dis[j];
p=j;
}
vis[p]=1;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&dis[p]+mapn[p][j]<dis[j])
dis[j]=mapn[p][j]+dis[p];
}
}}
int main()
{
int n,m,i,j,a,b,t;
while(scanf("%d%d",&n,&m)!=EOF,n+m)
{
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
mapn[i][j]=INF;
}
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&t);
mapn[a][b]=mapn[b][a]=t;
}
Dijkstra(n);
printf("%d\n",dis
);
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define INF 0x3f3f3f3;
int mapn[110][110],dis[110],vis[110];
void Dijkstra(int n)
{ int p,minn;
for(int i=1;i<=n;i++)
{
dis[i]=mapn[1][i];
vis[i]=0;
}
vis[1]=1;
for(int i=1;i<=n;i++)
{
minn=INF;
for(int j=1;j<=n;j++)
if(!vis[j]&&dis[j]<minn)
{
minn=dis[j];
p=j;
}
vis[p]=1;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&dis[p]+mapn[p][j]<dis[j])
dis[j]=mapn[p][j]+dis[p];
}
}}
int main()
{
int n,m,i,j,a,b,t;
while(scanf("%d%d",&n,&m)!=EOF,n+m)
{
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
mapn[i][j]=INF;
}
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&t);
mapn[a][b]=mapn[b][a]=t;
}
Dijkstra(n);
printf("%d\n",dis
);
}
return 0;
}
相关文章推荐
- HDU 2544 最短路——简单的模板题 dijkstra
- hdu 2544 最短路 dijkstra模板
- HDU ~ 2544 ~ 最短路 (Dijkstra模板,常规版 and 优先队列优化版)
- HDU 2544最短路dijkstra模板题
- hdu-2544-最短路(Dijkstra + Dijkstra优先队列 + Bellman-ford + SPFA +Floyd) 纯模板题
- hdu 2544 最短路(Dijkstra模板)
- HDU 2544 最短路(Dijkstra)(上手&&模板)
- HDU 2544 最短路——简单的模板题 dijkstra
- Hdu 2544 最短路 (Dijkstra+SPFA+Floyd模板)
- hdu 2544 dijkstra最短路
- hdu 2544 最短路 图论-求两点之间的最短距离 Dijkstra
- hdu 2544 最短路(Dijkstra)
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
- HDU 2544 最短路 dijkstra
- [HDU 2544]最短路[Dijkstra]
- [dijkstra/SPFA/floyd]HDU 2544最短路
- HDU 2544 最短路 Dijkstra 算法、 Floyd 算法 Bellman_ford算法
- 【hdu 2544】 最短路 (dijkstra 写的第一个最短路,也是dijkstra算法,纪念一下)
- hdu 2544 最短路(Dijkstra实现)
- 无向图邻接表怎么建,求指点!! HDU 2544 最短路(Dijkstra、结题报告 精简版!)