设为首页 加入收藏

TOP

UVA 11374 Airport Express(二)
2015-07-24 06:28:59 来源: 作者: 【 】 浏览:57
Tags:UVA 11374 Airport Express
axn]; void dijkstra_S() { memset(dist_S,63,sizeof(dist_S)); memset(vis,false,sizeof(vis)); memset(pre_S,-1,sizeof(pre_S)); dist_S[S]=0; for(int i=1;i<=n;i++) { int mark=-1,mindist=INF; for(int j=1;j<=n;j++) { if(!vis[j]&&dist_S[j] dist_S[mark]+edge[j].cost) { dist_S[u]=dist_S[mark]+edge[j].cost; pre_S[u]=mark; } } } } } void dijkstra_E() { memset(dist_E,63,sizeof(dist_E)); memset(vis,false,sizeof(vis)); memset(pre_E,-1,sizeof(pre_E)); dist_E[E]=0; for(int i=1;i<=n;i++) { int mark=-1,mindist=INF; for(int j=1;j<=n;j++) { if(!vis[j]&&dist_E[j] dist_E[mark]+edge[j].cost) { dist_E[u]=dist_E[mark]+edge[j].cost; pre_E[u]=mark; } } } } } vector road; void next_S(int x) { road.push_back(x); if(pre_S[x]!=-1) next_S(pre_S[x]); } void next_E(int x) { road.push_back(x); if(pre_E[x]!=-1) next_E(pre_E[x]); } int main() { int cas=0; while(scanf("%d%d%d",&n,&S,&E)!=EOF) { init(); scanf("%d",&M); for(int i=0;i temp) { ST=u; ED=v; ans=temp; CE=i; } temp=dist_S[v]+c+dist_E[u]; if(ans>temp) { ST=v; ED=u; ans=temp; CE=i; } } road.clear(); if(ST==-1) { next_S(E); int sz=road.size(); for(int i=sz-1;i>=0;i--) { if(i!=sz-1) putchar(32); printf("%d",road[i]); } } else { next_S(ST); int sz=road.size(); for(int i=sz-1;i>=0;i--) { if(i!=sz-1) putchar(32); printf("%d",road[i]); } road.clear(); next_E(ED); sz=road.size(); for(int i=0;i




首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇wikioi 1034 家园 动态网络中的时.. 下一篇nyoj 7 街区最短路径问题[数学]

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: