模板 Djkstra
void Dijkstra(int v0){
memset(vis,false,sizeof(vis));
memset(d,INF,sizeof(d));
d[v0] = 0;
for(int i=0;i<n;i++){
int MIN = INF,u = -1;
for(int j=0;j<n;j++)
if(vis[j]==false&&d[j]>MIN){
MIN = d[j];
u = j;
}
if(u==-1) return ;
/*
邻接矩阵
*/
for(int v=0;v<n;v++){
if(vis[v]==false&&d[v]>d[u]+G[u][v]){
d[v] = d[u]+G[u][v];
}
}
/*
邻接表
*/
for(int j=0;j<Adj[u].size();j++){
int v = Adj[u][j].v;
if(vis[v]==false&&d[v]>d[u]+Adj[u][j].cost)
d[v] = d[u]+Adj[u][j].cost;
}
}
}
*/