#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
const int max = 1024;
const int inf = 0x3f3f3f3f;//无穷大
int source;
int e[max][max],book[max],dis[max];
void init(int n){
int i,j;
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++){
e[i][j] = inf; //便设置最大
}
}
}
void Distance(int n){
int i;
for(i = 1; i <= n; i++){
dis[i] = e[source][i];//dis存储为对应source到i距离
}
}
void Dijkstra(int n){
int i,j;
for(i = 1; i <= n; i++){
int m = inf,t = -1;//m标记最大,t标记离source最近为访问节点
for(j = 1; j <= n; j++){
if(e[source][j] < m && !book[j]){
m = e[source][j];
t = j;
}
}
if(t != -1)book[t] = 1;//标记访问
for(j = 1; j <= n; j++){
if(e[t][j]!= inf && e[source][j] > m + e[t][j]){
e[source][j] = m + e[t][j];//更新节点
}
}
}
}
void Floyd(int n){
int k,i,j;
for(k = 1; k <= n; k++){
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++){
if(e[i][j] > e[i][k] + e[k][j]){//每次添加一个节点作为中介
e[i][j] = e[i][k] + e[k][j];
}
}
}
}
}
int main(){
return 0;
}
getPath