/* //***********************************
****************************************
MapMin.cpp
By Mollnn.Fan
Using Dijkstra
****************************************
*/ //***********************************
#include <iostream>
#include <fstream>
#include <malloc.h>
#include <conio.h>
#include <cmath>
#define MAXN 1000
#define MAXI 2147483646
using namespace std;
int time;
int dist[MAXN]; //标识起始点到当前点的距离
int prev[MAXN]; //标识当前点的路径上前一个点的标号
int a[MAXN][MAXN]; //邻接矩阵
ifstream fin;
ofstream fout;
int dij(int n,int v) //普通DIJ算法
{
bool s[MAXN]; //定义每一个点是否被使用
int i,j;
for(i=0;i<n;i++) //初始化
{
dist[i]=a[v][i];
s[i]=0;
if(dist[i]==MAXI)
prev[i]=0;
else
prev[i]=v;
}
dist[v]=0;
s[v]=1;
for(i=1;i<n;++i) //从第2个点开始找起
{
int t=MAXI;
int p=v;
for(j=0;j<n;++j) //找出距离始点最近的
单源最短路径 DIJ算法(无堆优化)
最新推荐文章于 2024-01-02 16:58:13 发布