//-----------Dijkstra-----------
int map[N][N];
int dist[N];
bool flag[N];
void Dijkstra(int n,int s)
{
int i,j,u;
for(i=1;i<=n;i++)
{
dist[i]=map[s][i];
flag[i]=false;
}
flag[s]=true;
for(i=1;i<n;i++)
{
u=s;
for(j=1;j<=n;j++)
{
if(!flag[j] && dist[j]<dist[u])
u=j;
}
if(u==s) break;
flag[u]=true;
for(j=1;j<=n;j++)
{
if(!flag[j] && dist[u]+map[u][j]<dist[j])
dist[j]=dist[u]+map[u][j];
}
}
}
写的不对或不好的地方,请大虾多多指教! ——Never