hdu——2066(dijkstra最短路)
来源:互联网 发布:oracle nvl mysql 编辑:程序博客网 时间:2024/06/05 12:02
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2066
注:wrong了8次。应该是边界情况未处理好。
可借鉴地址(提供了另一种思维方式):http://www.cnblogs.com/heqinghui/archive/2012/11/23/2784297.html
#include <iostream>#include <cstring>#include <algorithm>#define INF 0xfffffffusing namespace std;#define N 1001int w[N][N];int d[N];int n;int visited[N];int f[N];//记录相邻的城市 int g[N];//记录喜欢到的城市 void dijkstra(int st){int i;memset(visited,0,sizeof(visited));for(i=1;i<=n;i++) d[i]=(i==st)?0:INF;for(i=1;i<=n;i++) { int x,m=INF; for(int j=1;j<=n;j++) if(!visited[j]&&d[j]<m) m=d[x=j]; visited[x]=1; for(int j=1;j<=n;j++) if(!visited[j]&&w[x][j]!=INF) d[j]=min(d[j],d[x]+w[x][j]); }}int main(){int i,j,k,t;int m;int u,v;int l;while(cin>>m>>l>>t){for(i=1;i<=N;i++) for(j=1;j<=N;j++) w[i][j]=INF; n=N-1;for(i=0;i<m;i++) { cin>>u>>v>>k; if(w[u][v]>k) //可能多条路 { w[u][v]=k; w[v][u]=k; } //n=max(u,max(v,n)); 换成这句之后就一直在wrong ,应该是边界情况未处理好。 } int Min=INF; for(i=0;i<l;i++) cin>>f[i]; for(i=0;i<t;i++) cin>>g[i]; for(i=0;i<l;i++) { dijkstra(f[i]); for(j=0;j<t;j++) if(d[g[j]]<Min) Min=d[g[j]]; } cout<<Min<<endl;}return 0;}
- hdu——2066(dijkstra最短路)
- 【HDU】-2544-最短路(最短路)(dijkstra)
- 【hdu 2066】 一个人的旅行 ( 最短路 Dijkstra)
- HDU 2066-一个人的旅行(最短路Dijkstra)
- HDU 2066 一个人的旅行 (最短路----floyd && dijkstra)
- HDU 2066 一个人的旅行(最短路dijkstra)
- HDU 2066 一个人的旅行 (最短路--Dijkstra算法)
- hdu 2544 最短路(最短路算法之Dijkstra)
- HDU-2066(dijkstra最短路综合)
- hdu 2066 Dijkstra 最短路应用
- hdu 2544——最短路 dijkstra算法
- hdu 2544 最短路(Dijkstra 备忘)
- HDU 2544 最短路(Dijkstra)
- hdu 2544 最短路(水题,dijkstra)
- HDU 2544 最短路 (Dijkstra || SPFA)
- HDU - 2544 最短路 (Dijkstra)
- hdu 2544 最短路 (dijkstra算法)
- hdu 2544 最短路(dijkstra||spfa)
- shell的字符串处理
- QoS命令和脚本例子
- iOS,在应用之间共享文档
- Git服务器在Ubuntu中的搭建
- sniffer
- hdu——2066(dijkstra最短路)
- 利用UImageView实现简单坦克移动操作
- 正则表达式常用匹配组合汇总
- windows7 cocos2d-x 2.1.4 环境搭建(3 搭建安卓移植平台)
- 黑马程序员 关于Object中equals的理解
- WebRequest和WebBrowser同时登陆,使用同一个sessionID
- cocos2d-x 数学函数、常用宏粗整理
- 机器学习_常用算法列举
- 模拟钟表(Java多线程 + Applet)