【codevs1079】回家
problem solution codes //标程Dijkstra #include<iostream> #include<algorithm> #include<vector> using namespace std ; //T int n = 60 , m, vis[ 1010 ]; //Graph struct Edge{ int v, w; Edge( int v, int w):v(v),w(w){} }; vector <Edge> G[ 70 ]; //Dijkstra int dis[ 70 ], book[ 70 ], s = ( int ) 'Z' - 'A' ; void Dijkstra(){ for ( int i = 0 ; i < n; i++)dis[i] = 0xffffff ; for ( int i = 0 ; i < G[s].size(); i++) //bugs数据可能有覆盖 dis[G[s][i].v] = min(dis[G[s][i].v],G[s][i].w); dis[s] = 0 ; book[s] = 1 ; for ( int i = 0 ; i < n; i++){ int v, w= 0xffffff ; for ( int j = 0 ; j < n; j++) if (!book[j] && dis[j]<w)