最短路模板,以9个路口为例。 [cpp] view plain copy #define MAXN 1000000000 int a[9][9], d[9], p[9]; void spath(int v0) { int v, w, k, min; int vis[9]; for(v=0; v<9; v++) { vis[v] = 0; d[v]=a[v0][v]; p[v]=0; } d[v0]=0; vis[v0]=1; for(v=1; v<9; v++) { min = MAXN; for(w=0; w<9; w++) { if(!vis[w]&&d[w]<min) { k=w; min=d[w]; } } vis[k]=1; for(w=0; w<9; w++) { if(!vis[w]&&(min+a[k][w]<d[w])) { d[w]=min+a[k][w]; p[w]=k; } } } }