hdu 2066 Dijkstra 最短路应用
来源:互联网 发布:网络热词及解释 编辑:程序博客网 时间:2024/05/16 10:36
第三道最短路题目
初始化的失误导致我WA 若干次,粗心啊,我的长处还是在管理啊,写程序和经管方面的能力比起来逊色不少
#include <iostream>#include <cstring>using namespace std;const int maxn = 1002;#define inf 100000000int T,S,D;int a,b,c;int Dist[maxn];int G[maxn][maxn];int s[maxn],d[maxn];int maxXXX;int final[maxn];int Dijkstra(int v0){ int Min; int k; for(int i = 0; i <= maxXXX; i++) //初始化 { final[i] = false; Dist[i] = G[v0][i]; } final[v0] = 1; Dist[v0] = 0; for(int v = 0; v <= maxXXX; v++) { Min = inf; for(int w = 0; w <= maxXXX; w++) { if(!final[w] && (Dist[w] < Min)) { Min = Dist[w]; k = w; } } if(Min == inf) //如果没有相邻的节点 break; final[k] = 1; for(int w = 0; w <= maxXXX; w++) { if(!final[w] && (Min + G[k][w] < Dist[w])) { Dist[w] = Min + G[k][w]; //更新临近点距离 } } } int m = inf; //计算到每个想去的地方的最小值 for(int i = 0; i < D;i++) { if(m > Dist[d[i]]) { m = Dist[d[i]]; } } return m; }int main(){ int min; while(cin>>T>>S>>D) { for(int i = 0; i < maxn;i++) { for(int j = 0; j < maxn; j++) { G[i][j] = inf; } } maxXXX = 0; for(int i = 0; i < T; i++) { cin>>a>>b>>c; if(c < G[a][b]) { G[a][b] = c; G[b][a] = c; } if(maxXXX < a) maxXXX = a; //计算最多有多少个节点 if(maxXXX < b) maxXXX = b; } for(int i = 0; i < S; i++) { cin>>s[i]; } for(int j = 0; j <D; j++) { cin>>d[j]; } min = inf; //memset(Dist,0,sizeof(Dist)); for(int i = 0; i < S; i++) 求从每个临近节点出发的最小值 { if(Dijkstra(s[i]) < min) min = Dijkstra(s[i]); } cout<<min<<endl; } return 0;}
78ms速度还可以
注意优化
- hdu 2066 Dijkstra 最短路应用
- HDU-2066(dijkstra最短路综合)
- HDU 2544 最短路 (最短路 Dijkstra)
- hdu 2544 最短路--Dijkstra
- HDU 2544 最短路 dijkstra
- HDU 2544 Dijkstra 最短路
- HDU 1874 dijkstra最短路
- hdu 2680最短路dijkstra
- hdu 2544最短路dijkstra
- hdu 2544 dijkstra最短路
- HDU 2544 最短路 Dijkstra
- [HDU 2544]最短路[Dijkstra]
- 【Dijkstra】-HDU-2544-最短路
- HDU--2544最短路【Dijkstra】
- HDU 3790 最短路 Dijkstra
- HDU 2544 最短路(dijkstra)
- 【hdu 2066】 一个人的旅行 ( 最短路 Dijkstra)
- hdu 2066 一个人的旅行(Dijkstra求最短路问题)
- IOS#UI之UIlabel
- 【每天一道算法题】恍如隔世
- Datatable 列expression使用
- I MISS YOU
- Linux网络编程必看书籍推荐
- hdu 2066 Dijkstra 最短路应用
- select for update与select for nowait
- uva10564
- Practical Netty (2) CS模式下的Echo及String与ChannelBuffer的转化
- Ubuntu 12.04 telnet exit method
- 用post还是用get
- SQL--数据库触发器
- [leetcode] Decode Ways (!!)
- VC案例教学之一:改造轮子1:用for代替……