UVA 11374 Airport Express dijkstra(二)

2014-11-24 08:21:35 · 作者: · 浏览: 1
de temp=q.top(); q.pop(); if(vis[temp.from]) continue; vis[temp.from]=true; for(int i=head[temp.from];i!=-1;i= e[i].next) { if( dis[temp.from] + e[i].val < dis[e[i].to]) { dis[e[i].to]=dis[temp.from] + e[i].val ; path[e[i].to] = temp.from; q.push(node(e[i].to,dis[e[i].to])); } } } } void print(int cur) { if(path_s[cur]!=-1) print(path_s[cur]); if(cur!=en) printf(%d ,cur); else printf(%d ,cur); } int main() { bool not_first=false; while(~scanf(%d%d%d,&n,&s,&en)) { if(not_first) printf( ); not_first=true; len=0; for(int i=1;i<=n;i++) { dis_s[i]=dis_r[i]=INF; head[i]=path_r[i]=path_s[i]=-1; } int m; scanf(%d,&m); for(int i=0;i