博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj(1125),Floyd,
阅读量:6074 次
发布时间:2019-06-20

本文共 1331 字,大约阅读时间需要 4 分钟。

题目链接:

多源点最短路中的,最长路的,最短路。 看到这里就懵逼了,解释一下,找到一个源点,使得路最短,(遍历源点),路最短怎么求呢? 就是找到从该源点出发,到达所有点中的最长的点的路径,就是他的最短路,然后根据n个源点,找到这样的最长路最短的,就行了。

这里的具体Floyd算法,我还没推过,dis[i][j]从I到J的最短路。

#include 
#include
#include
using namespace std;#define INF 0x3f3f3f3fint dis[105][105];int n;void floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) dis[i][j] = min(dis[i][j],dis[i][k]+dis[k][j]); int minlength = INF; int flag = 0; for(int i=1;i<=n;i++) { int maxlength = 0; for(int j=1;j<=n;j++) { if(i!=j&&dis[i][j]>maxlength) maxlength = dis[i][j]; } if(minlength>maxlength) { minlength = maxlength; flag = i; } } if(flag) printf("%d %d\n",flag,minlength); else printf("disjoint\n");}int main(){ while(scanf("%d",&n),n) { memset(dis,INF,sizeof(dis)); for(int i=1; i<=n; i++) { int pairs; scanf("%d",&pairs); for(int j=1; j<=pairs; j++) { int to,time; scanf("%d%d",&to,&time); dis[i][to] = time; } } floyd(); } return 0;}

 

转载于:https://www.cnblogs.com/TreeDream/p/5730449.html

你可能感兴趣的文章
spring ApplicationContext 继承结构
查看>>
《老爸老妈浪漫史》Barney和Robin终于。。。
查看>>
geexbox 在pannd board 的配置
查看>>
mysql中存储emojj
查看>>
“秒杀”问题的数据库和SQL设计
查看>>
properties 文件 属性值过长换行如何处理
查看>>
Session
查看>>
nodejs 升级最新稳定版本
查看>>
Git详解---------------Book
查看>>
windows2003下自动删除n天前的文件
查看>>
delphi实现动态加密解密功能。
查看>>
简单扩写UCD-SNMP源码包中的示例MIB module 之一
查看>>
测试网络状态
查看>>
数字格式化DecimalFormat 总结
查看>>
Flex中Number型去除空值(NaN)
查看>>
Chrome deep link打开app
查看>>
JMenuBar组件
查看>>
Cookie/Session机制详解
查看>>
KV型数据存储引擎Leveldb/lmdb/comdb /rocksdb
查看>>
安装配置Gradle,以及使用
查看>>