poj 1502 MPI Maelstrom
2011-11-23 20:23
197 查看
题意真没看懂。。英语太差,看了DISCUSS才知道是求第一个点到其他顶点的最短路径中的最大值!!因为所有信息是同时发送的
#include<stdio.h>#include<stdlib.h>
#define MAXN 101
#define INF 1<<11
int map[MAXN][MAXN];
int dis[MAXN],used[MAXN];
void input(int n)
{
int i,j;
char s[10];
for(i=2;i<=n;i++)
{
for(j=1;j<=i-1;j++)
{
scanf("%s",s);
if(s[0]=='x')
map[i][j]=map[j][i]=INF;
else
map[i][j]=map[j][i]=atoi(s);
}
}
for(i=1;i<=n;i++)
map[i][i]=0;
}
int find_max(int n)
{
int i,max=-1;
for(i=1;i<=n;i++)
if(dis[i]>max)
max=dis[i];
return max;
}
void dijkstra(int n)
{
int i,j,min,v;
for(i=1;i<=n;i++)
{
used[i]=0;
dis[i]=map[1][i];
}
used[1]=1;
while(1)
{
min=INF,v=0;
for(i=1;i<=n;i++)
{
if(!used[i]&&dis[i]<min)
{
min=dis[i];
v=i;
}
}
if(v==0)
break;
used[v]=1;
for(j=1;j<=n;j++)
if(!used[j]&&map[v][j]+dis[v]<dis[j])
dis[j]=map[v][j]+dis[v];
}
printf("%d\n",find_max(n));
}
int main()
{
int n;
while(scanf("%d",&n)==1)
{
input(n);
dijkstra(n);
}
return 0;
}
相关文章推荐
- POJ - 1502----MPI Maelstrom(Dijkstra)
- POJ 1502 MPI Maelstrom 【单源最短路中求最大值】
- POJ 1502 MPI Maelstrom 最短路
- Poj 1502 MPI Maelstrom (Dijkstra
- POJ 1502 MPI Maelstrom(模板题——Floyd算法)
- poj 1502 MPI Maelstrom
- POJ 1502 MPI Maelstrom (最短路)
- POJ-1502 MPI Maelstrom (裸dijkstra算法)
- POJ 1502 MPI Maelstrom
- POJ 1502 MPI Maelstrom
- poj 1502 MPI Maelstrom([kuangbin带你飞]专题四 最短路练习)
- 【POJ】1502 MPI Maelstrom 最短路
- poj 1502 MPI Maelstrom
- poj 1502 MPI Maelstrom
- POJ - 1502 MPI Maelstrom(最短路dijkstra)
- 【poj 1502】 MPI Maelstrom 【East Central North America 1996】
- 最短路spfa POJ 1502 MPI Maelstrom
- POJ - 1502 MPI Maelstrom
- POJ 1502 MPI Maelstrom 最短路
- poj 1502 MPI Maelstrom--dijkstra--atoi