POJ 1502 MPI Maelstrom 最短路dijkstra
2012-07-23 21:37
477 查看
题意:求源点1到其它任意点的最小值 之中的最大值。
题意理解后,dijkstra水题
View Code
题意理解后,dijkstra水题
View Code
#include<stdio.h> #include<string.h> #define maxn 101 #define INF 100000000 int n, m; int adj[maxn][maxn],dis[maxn]; int max; bool vis[maxn]; int dijkstra(int v) { int i,j,k,min,u; for(i=1;i<=n;i++) { dis[i]=adj[v][i]; vis[i]=0; } vis[v]=1;dis[v]=0; for(i=1;i<n;i++) { min = INF; for(j=1;j<=n;j++) { if(min > dis[j]&&!vis[j]) { min =dis[j]; u = j; } } if(min == INF)break; vis[u]=1; for(j=1;j<=n;j++) { if(dis[u]+adj[u][j] < dis[j] &&!vis[j]) { dis[j] = dis[u]+adj[u][j]; } } } int max = dis[1]; for(i=2;i<=n;i++) { if(max < dis[i])max=dis[i]; } return max; } int main() { int i ,j; char s[34]; while(~scanf("%d",&n)) { for(i=2;i<=n;i++) { for(j=1;j<i;j++) { scanf("%s",s); if(s[0]=='x')adj[i][j]=adj[j][i]=INF; else { int len =strlen(s),k; int sum=0; for(k=0;k<len;k++) sum= sum*10+s[k]-'0'; adj[i][j]=adj[j][i]=sum; } } } printf("%d\n",dijkstra(1)); } return 0; }
相关文章推荐
- POJ 1502 MPI Maelstrom 最短路dijkstra
- POJ - 1502 MPI Maelstrom(最短路dijkstra)
- POJ 1502 MPI Maelstrom(单源最短路|Dijkstra实现)
- POJ 1502 MPI Maelstrom [最短路 Dijkstra]
- POJ-1502-MPI Maelstrom [最短路][Dijkstra]
- poj 1502 MPI Maelstrom(单源最短路dijkstra)
- POJ 1502 MPI Maelstrom (简单最短路,多种算法均可)
- POJ - 1502 MPI Maelstrom —— dijkstra
- POJ - 1502----MPI Maelstrom(Dijkstra)
- POJ 1502 MPI Maelstrom(Dijkstra)
- POJ 1502 MPI Maelstrom (最短路)
- POJ 1502 MPI Maelstrom 单源最短路 Floyd Dijkstra
- 【图论--Dijkstra】POJ 1502 MPI Maelstrom
- poj 1502--MPI Maelstrom (最短路spfa)
- poj 1502 MPI Maelstrom dijkstra基础 入门 点型模板题
- POJ 1502 MPI Maelstrom 最短路
- POJ 1502 - MPI Maelstrom(单源最短路)
- POJ 1502 MPI Maelstrom (最短路)
- POJ 1502 MPI Maelstrom——dijkstra
- poj 1502 MPI Maelstrom【dijkstra】