poj_1502_MPI Maelstrom(Dijkstra求单源最短路径)
2013-10-31 19:51
344 查看
题型:图论
题意:
话说这个题还真心难读(或许是个人英语水平过次o_O),给出n个处理器,处理器之间可以相互联系,可以看作一个无向图,输入部分为邻接矩阵下三角,x代表相应两个处理器之间不相连。现在求出从第一处理器到另一个处理器最少需要的最长时间。
分析:
了解了题意之后,就会发现这是个赤裸裸的单源最短路径了,然后找出dis数组里的最大值即可。
代码:
题意:
话说这个题还真心难读(或许是个人英语水平过次o_O),给出n个处理器,处理器之间可以相互联系,可以看作一个无向图,输入部分为邻接矩阵下三角,x代表相应两个处理器之间不相连。现在求出从第一处理器到另一个处理器最少需要的最长时间。
分析:
了解了题意之后,就会发现这是个赤裸裸的单源最短路径了,然后找出dis数组里的最大值即可。
代码:
#include<iostream> #include<cmath> #include<cstring> #include<algorithm> #include<cstdio> #define INF 0x7f7f7f #define MAXN 200 using namespace std; char str[MAXN]; int path[MAXN][MAXN]; int n; int dis[MAXN],pre[MAXN]; bool vis[MAXN]; void Dijkstra(int start){ int i,j,k; int min; for(int i=1;i<=n;i++){ vis[i] = false; if(i!=start){ dis[i] = path[start][i]; pre[i]=start; } } dis[start] = 0; vis[start] = true; for(i=1;i<=n-1;i++){ min=INF; k=0; for(j=1;j<=n;j++){ if(!vis[j] && dis[j]<min){ min = dis[j]; k = j; } } if(k==0) return; vis[k] = true; for(j=1;j<=n;j++){ if(!vis[j] && path[k][j]!=INF && dis[j]>dis[k]+path[k][j]){ dis[j]=dis[k]+path[k][j]; pre[j]=k; } } } } int main(){ while(~scanf("%d",&n)){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ path[i][j]=path[j][i]=INF; } } //memset(path,INF,sizeof(path)); for(int i=2;i<=n;i++){ for(int j=1;j<i;j++){ scanf("%s",str); if(str[0]!='x'){ path[i][j]=path[j][i]=atoi(str); } } } Dijkstra(1); int big=-1; for(int i=2;i<=n;i++){ big = big>dis[i] ? big : dis[i]; } printf("%d\n",big); } return 0; }
相关文章推荐
- POJ_1502_MPI Maelstrom_最短路径
- POJ 1847 Tram(Dijkstra单源有向图最短路径算法)
- POJ 1502 MPI Maelstrom / UVA 432 MPI Maelstrom / SCU 1068 MPI Maelstrom / UVALive 5398 MPI Maelstrom /ZOJ 1291 MPI Maelstrom (最短路径)
- POJ 1125 Stockbroker Grapevine (Dijkstra求所有点的单源最短路径)
- poj 1502 MPI Maelstrom(单源最短路dijkstra)
- poj 1502 Dijkstra 求最短路径。
- Dijkstra单源最短路径,POJ(2387)
- 最短路径___MPI Maelstrom(Poj 1502)
- poj 1502 单源最短路径
- poj 3268 Silver Cow Party(单源最短路径Dijkstra·最小环)
- POJ 1502 MPI Maelstrom(单源最短路|Dijkstra实现)
- POJ--1502:MPI Maelstrom (最短路径:Dijkstra算法 & Floyd算法)
- POJ 2387Til the Cows Come Home(最短单源路径)(dijkstra)
- 单源最短路径:Dijkstra 算法 Bellman_Ford 算法 SPFA 算法
- POJ 3249 Test for Job DAG图上的单源最短路径
- POJ 1502 MPI Maelstrom Dijkstra
- Java实现Dijkstra单源最短路径
- 贪心算法之单源最短路径Dijkstra
- 关于图的常用算法——Dijkstra单源最短路径、Floyd多源最短路径、Prim和Kruskal最小生成树算法
- (阶段三 dijkstra温习1.3)HDU 1874 畅通工程续(用dijkstra求单源起点和单点终点的最短路径(起点和终点动态给出))