poj 1125 Floyed求任意2点最短路径
来源:互联网 发布:装潢艺术设计软件技能 编辑:程序博客网 时间:2024/06/10 13:14
题意参见:http://poj.org/bbs?problem_id=1125
Floyed算法使用注意k,i,j的顺序不能颠倒,否则发生错误。
#include <iostream>
#include <cstdio>
using namespace std;
int dis[105][105];
int MAX = 20;
void Floyd(int n)
{
for(int k = 1;k<=n;k++)
{
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=n;j++)
{
if(dis[i][k]!=MAX&&dis[k][j]!=MAX&&dis[i][j] > dis[i][k]+dis[k][j])
{
dis[i][j] = dis[i][k]+dis[k][j];
}
}
}
}
}
int main()
{
int m;
while(scanf("%d",&m)&&m!=0)
{
for(int i = 0;i<105;i++)
{
for(int j = 0;j<105;j++)
{
dis[i][j] = MAX;
}
dis[i][i] = 0;
}
for(int i = 1;i<=m;i++)
{
int num,x,y;
scanf("%d",&num);
for(int j = 0;j<num;j++)
{
scanf("%d %d",&x,&y);
dis[i][x] = y;
}
}
Floyd(m);
int maxtime = 0;
int record;
int mintime = 20;
bool flag;
for(int i = 1;i<=m;i++)
{
maxtime = 0;
flag = false;
for(int j = 1;j<=m;j++)
{
if(dis[i][j]==MAX)
{
flag = true;
break;
}
if(dis[i][j]>maxtime)
maxtime = dis[i][j];
}
if(flag==false)
{
if(maxtime < mintime)
{
mintime = maxtime;
record = i;
}
}
}
if(mintime == 20)
{
printf("disjoint\n");
}
else
{
printf("%d %d\n",record,mintime);
}
}
return 0;
}
- poj 1125 Floyed求任意2点最短路径
- 求任意两点路径数目+floyed+uva125
- poj 1125 (floyed 最短路径)
- poj 1125 floyed算法
- Floyed求传递闭包 poj 3660
- poj 1125 Stockbroker Grapevine (Floyed)
- Floyed算法求两点之间的最短路径
- ACM-Floyed算法求两点之间的最短路径
- POJ 2253 Frogger 最短路径 Floyed-Warshall算法
- POJ 2240 Arbitrage 最短路径 Floyed-Warshall
- 弗洛伊德算法Floyed(求各顶点间最短路径):可打印最短路径
- floyed求最小环
- floyed(记录路径)
- Floyed 算法求最短路径
- Floyed算法求多源最短路径
- 多源最短路径+源码<floyed>
- (Floyed-Warshall13.1.2)POJ 2240 Arbitrage(Floyed-Warshall公式的使用||求所有货币之间的最佳兑换方案)
- (floyed反求最长路径)ZOJ 2797 106 miles to Chicago
- 大数的取余运算
- CCNA实验三:配置OSPF
- android 学习资料推荐
- 最短路径问题 hdu 3790
- 信息安全类上市公司
- poj 1125 Floyed求任意2点最短路径
- jQuery对节点进行操作
- uva11096(Nails)
- ubuntu 编译lua5.2.2
- 从Hibernate源码看@NotFound(action=NotFoundAction.IGNORE) 会导致Eager加载 @ManyToOne(fetch = FetchType.LAZY)无效
- 凸包,有利于理解凸包极角排序poj1228
- MyEclipse+Eclipse添加ibatis DTD文件实现xml的自动提示功能
- 对象已死?
- java邮件开发