题目大意

N个股票经纪人,每个股票经纪人都会将得到的消息传播给另外一些股票经纪人,传播的速度均不固定,且从A传到B的速度和B传到A的速度不一定相等。给定一个消息,并不一定能够传遍所有的股票经纪人,因为股票经纪人可能形成一座座“孤岛”,使得信息无法送达。 
    现在给定每个股票经纪人能消息传达的其他股票经纪人和传达给其他经纪人所需要的时间,求出将一个消息给哪个(只一个)股票经纪人能够使得消息最快传遍所有的股票经纪人。若无论给哪个股票经纪人都无法使消息传遍所有经纪人,则返回 "disjoint".

题目分析

典型的最短路问题,由于最开始选择的出发点不固定,因此需要求出所有点之间的最短路。采用floyd算法。判断图是否连通,可以通过判断是否从图中所有的点出发都存在无法到达的点来实现:若从图中所有的点出发,都存在无法到达的点,则说明图不连通。

实现(c++)

#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
#define INFINITE 1 << 28
int gDist[105][105]; //Floyd算法
void Floyd(int n){
for (int k = 1; k <= n; k++){ //从i到j,中间经过的节点编号不大于k
for (int i = 1; i <= n; i++){ //起点i
for (int j = 1; j <= n; j++){ //终点j
if (gDist[i][j] > gDist[i][k] + gDist[k][j]){
gDist[i][j] = gDist[i][k] + gDist[k][j];
}
}
}
}
}
int main(){
int n;
while (scanf("%d", &n) && n){
int k, v, d;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
gDist[i][j] = INFINITE;
if (i == j)
gDist[i][j] = 0;
}
}
for (int i = 1; i <= n; i++){
scanf("%d", &k);
for (int j = 0; j < k; j++){
scanf("%d %d", &v, &d);
gDist[i][v] = d;
}
}
Floyd(n);
int min_time = INFINITE, min_stockbroker = 0, disjoint_count = 0; for (int i = 1; i <= n; i++){
int max = 0;
bool disjoint = false;
for (int j = 1; j <= n; j++){
if (gDist[i][j] == INFINITE){ //说明存在点i无法到达的点
disjoint = true;
break;
}
max = max > gDist[i][j] ? max : gDist[i][j];
}
if (disjoint){
disjoint++;
continue;
}
if (min_time > max){
min_time = max;
min_stockbroker = i;
} }
if (disjoint_count == n) //如果从每个点出发都有无法到达的点,则说明
//图不是连通的
printf("disjoint\n");
else
printf("%d %d\n", min_stockbroker, min_time);
}
return 0;
}

poj_1125 Floyd最短路的更多相关文章

  1. Floyd最短路算法

    Floyd最短路算法 ----转自啊哈磊[坐在马桶上看算法]算法6:只有五行的Floyd最短路算法 暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计 ...

  2. 【啊哈!算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  3. 【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  4. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2343  Solved: 1266[Submit][Status][Discuss] Descripti ...

  5. Wikioi 1020 孪生蜘蛛 Label:Floyd最短路

    题目描述 Description 在G城保卫战中,超级孪生蜘蛛Phantom001和Phantom002作为第三层防卫被派往守护内城南端一带极为隐秘的通道. 根据防护中心的消息,敌方已经有一只特种飞蛾 ...

  6. FZU2090 旅行社的烦恼 巧妙floyd 最短路

    分析:floyd看似很好理解,实际上是状态转移,具体的解释参照这里 http://www.cnblogs.com/chenying99/p/3932877.html 深入理解了floyd后,这个题就可 ...

  7. 只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  8. 仅仅有五行的Floyd最短路算法

    暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,例如以下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道随意两个城市之前的最短路程. 上图中有4个城市8条公路,公路上的数 ...

  9. BZOJ 1491 社交网络 Floyd 最短路的数目

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题目大意: 见链接 思路: 直接用floyd算法求最短路,同时更新最短路的数目即 ...

随机推荐

  1. 本地ubuntu下pycharm 如何利用远程开发环境时显示图片

    最近使用pycharm远程开发tensorflow,每次在想显示图像时,苦于不知怎么操作,就通过保存后再看结果,使得调试很不方便.今天打算解决这个问题,收获也是很多啊. 我首先参考了这两篇博客: ht ...

  2. 【Android UI设计与开发】使用ViewPager实现欢迎引导页面

    一.实现的效果图 每次看别人的代码前,必需要先看实现的效果图达到了一个什么样的效果,是不是跟自己想要实现的效果类似.有图才有真相嘛,同一时候,最下方有源代码的下载地址,差点儿源代码的每一行都有凝视,写 ...

  3. 拒绝蛋疼,javascript调试技巧

    chrome的调试技巧网上很多介绍了,这里提两个个人觉得比较有用的: 1.console.log 优点:可以输出json对象,而非字符串,这是 alert() 做不到的 缺点:记得要删除,否则在低版本 ...

  4. svn add xxx.txt 提示A (bin) xxx.txt

    [root@NGINX-APACHE-SVN iptables]# svn ci -m "add iptables.txt" Adding (bin) iptables/iptab ...

  5. nohu和&

    在第一家公司工作的时候, 我认识了&,在第二家公司工作的时候, 我认识了nohup,  这就是渊源.  随后, 我就一直糊涂用他们, 但并不懂这两个东西. 网上很多地方是乱扯, 瞎复制, 为什 ...

  6. Wireshark-TCP协议分析(包结构以及连接的建立和释放)

    原文:http://blog.csdn.net/ahafg/article/details/51039584 TCP:传输控制协议 TCP是一种面向连接的.可靠的.基于字节流的传输层通信协议.  面向 ...

  7. Shape Control for .NET

    Shape Control for .NET Yang Kok Wah, 23 Mar 2017 CPOL    4.83 (155 votes)   Rate this: vote 1vote 2v ...

  8. SpringBoot资源国际化

    Springboot根据浏览器实现网站资源国际化 根据浏览器地区主动选择资源 1.创建资源化文件 resource目录下创建messages目录 创建messages_en_US.properties ...

  9. Linux下protobuf的编译与安装

    1.下载源码 首先,从github上下载protobuf的源码,地址:https://github.com/google/protobuf,我选择下载2.5.0版本. 2.编译protobuf 将下载 ...

  10. nginx 的 autoindex on首页不显示的问题 按照下面几行要写上不然不行

    [root@test html]# vim ../conf/nginx.confworker_processes  1;events {    worker_connections  1024;}ht ...