map[i][j]存储i点到j点的权值;
visit[i]用于记录访问点
w[i]表示0点(即其实点)到i点的最小权值
int dijkstra(){
int w[MAX];
for(int i=0;i<=1000;i++)
w[i]=INF;
int next;
w[0]=0;
for(int i=0;i!=-1;){
visit[i]=1;
next=-1;
if(i&&target[i])return w[i];
for(int j=1;j<=NUM;j++){
if(!visit[j]&&map[i][j]!=INF){
w[j]=min(w[j],w[i]+map[i][j]);
}
if(!visit[j]&&(next==-1||w[j]<w[next]))
next=j;
}
i=next;
}
}