求单源或全局最短路径(无负边)-> 用Dijkstra:
#include <iostream>
const int inf = 999999999;
cosnt int maxn = 500;
int main(){
int e[maxn][maxn],dis[maxn];
fill(e[0],e[0]+maxn*maxn,inf);
fill(dis,dis+maxn,inf);
}
Dijkstra(){
int u = -1,min = inf;
rep(j,0,n){
if(vis[j]==false && dis[j] < minn){
u = j;
minn = dis[j];
}
}
if(u == -1) break;
rep(v,0,n){
if(vis[v]==false && e[u][v] != inf){
if(dis[v] > e[u][v] + dis[u]){
dis[v] = e[u][v] + dis[u];
}else if(dis[v] == e[u][v] + dis[u]){
}
}
}
}