dij 最短路径模板
来源:互联网 发布:淘宝童装店招图片大全 编辑:程序博客网 时间:2024/05/10 09:50
#include<stdio.h>
int Path[550];
int Dist[550];
int Mark[550];
int Map[550][550];
void Dij(int x,int n)
{
int i,j,k;
for(i=1;i<=n;i++)
{
Dist[i]=Map[x][i];
Mark[i]=1;
Path[i]=x;
}
Dist[x]=0;
Mark[x]=0;
Path[x]=-1;
int Min;
for(i=2;i<=n;i++)
{
Min=9999;
for(j=2;j<=n;j++)
{
if(Mark[j]&&Dist[j]<Min)
{
k=j;
Min=Dist[j];
}
}
Mark[k]=0;
for(j=2;j<=n;j++)
{
if(Mark[j])
if(Dist[k]+Map[k][j]<Dist[j])
{
Dist[j]=Dist[k]+Map[k][j];
Path[j]=k;
}
}
}
}
void Print(int n)
{
printf("%d\n",n);
while(Path[n]>0)
{
printf("%d\n",Path[n]);
n=Path[n];
}
}
int main()
{
int n,m;
int x,y,z;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(x=1;x<=n;x++)
{
for(y=x+1;y<=n;y++)
Map[x][y]=Map[y][x]=9999;
Map[x][x]=0;
}
while(m--)
{
scanf("%d%d%d",&x,&y,&z);
Map[x][y]=Map[y][x]=z;
}
Dij(1,n);
Print(n);
printf("%d\n",Dist[n]);
}
return 0;
}
int Path[550];
int Dist[550];
int Mark[550];
int Map[550][550];
void Dij(int x,int n)
{
int i,j,k;
for(i=1;i<=n;i++)
{
Dist[i]=Map[x][i];
Mark[i]=1;
Path[i]=x;
}
Dist[x]=0;
Mark[x]=0;
Path[x]=-1;
int Min;
for(i=2;i<=n;i++)
{
Min=9999;
for(j=2;j<=n;j++)
{
if(Mark[j]&&Dist[j]<Min)
{
k=j;
Min=Dist[j];
}
}
Mark[k]=0;
for(j=2;j<=n;j++)
{
if(Mark[j])
if(Dist[k]+Map[k][j]<Dist[j])
{
Dist[j]=Dist[k]+Map[k][j];
Path[j]=k;
}
}
}
}
void Print(int n)
{
printf("%d\n",n);
while(Path[n]>0)
{
printf("%d\n",Path[n]);
n=Path[n];
}
}
int main()
{
int n,m;
int x,y,z;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(x=1;x<=n;x++)
{
for(y=x+1;y<=n;y++)
Map[x][y]=Map[y][x]=9999;
Map[x][x]=0;
}
while(m--)
{
scanf("%d%d%d",&x,&y,&z);
Map[x][y]=Map[y][x]=z;
}
Dij(1,n);
Print(n);
printf("%d\n",Dist[n]);
}
return 0;
}
0 0
- dij 最短路径模板
- 最短路径(1)--poj2387(Dij模板题)
- Dij.......最短路径算法
- DIJ问题,最短路径
- poj 1062 (dij最短路径)
- HDU 3790 最短路径问题 dij
- hd 2544 最短路径(简单dij)
- HDU3790 最短路径问题+dij算法
- 最短路径模板
- 最短路径模板
- hdu 2544 最短路(最短路径)(flody、dij、dij+priority queue、bellman、spfa)
- 图论——最短路径——dij
- *浙大PAT甲级 1072 最短路径dij
- 1089: 道路重建(dij 最短路径)
- SPFA最短路径模板
- 最短路径 模板小结
- 【模板】最短路径spfa
- 最短路径(7)--poj1502(最短路径模板题)
- day day up--Java编程之RandomAccessFile操作系统属性文件
- 介绍一下android开发规范
- 湖大训练赛1 Broken Audio Signal
- 责任链模式源码
- AppControler
- dij 最短路径模板
- JTableModel
- 线段树模板
- 7.2 Search Insert Position
- 应用开发者指南--process.html
- 编程算法 - 多重集组合数 代码(C)
- Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法
- 最大报销额 - HDU 1864 01背包
- “钢铁侠”Insteon的逆袭:声控智能家居新时代