您的位置:首页 > 其它

POJ 1502 MPI Maelstrom(floyd)#by zh

2012-10-31 23:50 288 查看
简单folyd,给你一个矩阵的下三角形式,然后让你求第一个点到其他点的最短路径,并输出其中的最大值,看分类说是floyd还以为是全源,题意也没怎么看懂就写了,早知道就写spfa了,第一次因为INF开太大了wa了一次,以后得注意不要开太大,明天就去杭州了,期待第一次现场赛之旅,fighting!
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int INF=100000000;
int map[105][105];
int n;
char str[199];
void floyd()
{
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
}
}
int main()
{
//freopen("input.txt","r",stdin);
scanf("%d",&n);
memset(map,0,sizeof(map));
for(int i=2;i<=n;i++)
for(int j=1;j<i;j++)
{
scanf("%s",str);
if(str[0]=='x')
map[i][j]=map[j][i]=INF;
else
{
int temp=0;
for(int k=0;k<strlen(str);k++)
temp=temp*10+str[k]-'0';
map[j][i]=map[i][j]=temp;
}
}
floyd();
int ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,map[1][i]);
printf("%d\n",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: