POJ1125-Stockbroker Grapevine【Floyd】(模板题)
<题目链接>
题目大意:
题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的关系(教你如何画图)。每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后紧接着M对整数,每对整数表示成a,b,则表明该经纪人向第a个经纪人传递信息需要b单位时间,该图为有向图。构图完毕后,求当从该图中某点出发,将“消息”传播到整个经纪人网络的最小时间,输出这个经纪人号和最小时间。最小时间的判定方式为——从这个经纪人(结点)出发,整个经纪人网络中最后一个人接到消息的时。如果有一个或一个以上经纪人无论如何无法收到消息,输出“disjoint”
解题分析:
由于此题起点会发生改变,并且数据很小,所以我们用Floyd算法来求多源最短路,这题需要注意的是,如何更新传播给所有人的最短时间,具体实现见代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f int main(){
int n;
while(scanf("%d",&n)!=EOF,n){
int mpa[][];
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
mpa[i][j]=INF; //初始化所有点间距为无穷大
}
}
for(int i=;i<=n;i++){
int m;scanf("%d",&m);
while(m--){
int a,b;
scanf("%d%d",&a,&b);
if(b<mpa[i][a])mpa[i][a]=b;
}
}
for(int k=;k<=n;k++) //弗洛伊德得到所有点之间的最短距离
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(mpa[i][j]>mpa[i][k]+mpa[k][j])
mpa[i][j]=mpa[i][k]+mpa[k][j];
int loc,mn=INF;
for(int i=;i<=n;i++){
int mx=-INF;
for(int j=;j<=n;j++){
if(i==j)continue;
mx=max(mpa[i][j],mx); //其实这里实际上是在得到以i为起点,传播给所有的人所花的总时间,因为传播给所有人的总时间的判定方法就是传播到最远的那个人的时间
}
if(mn>mx){ //更新传播给所有人的最短时间
mn=mx;
loc=i;
}
}
if(mn==INF)//如果最大值不从在,说明有未连通的点
printf("disjoint\n");
else
printf("%d %d\n",loc,mn);
}
return ;
}
POJ1125-Stockbroker Grapevine【Floyd】(模板题)的更多相关文章
- poj1125 Stockbroker Grapevine Floyd
题目链接:http://poj.org/problem?id=1125 主要是读懂题意 然后就很简单了 floyd算法的应用 代码: #include<iostream> #include ...
- Stockbroker Grapevine(floyd+暴力枚举)
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31264 Accepted: 171 ...
- poj1125&zoj1082Stockbroker Grapevine(Floyd算法)
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Description Stockbrokers are known to ...
- Stockbroker Grapevine(floyd)
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28231 Accepted: ...
- POJ1125 Stockbroker Grapevine(spfa枚举)
Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a me ...
- POJ1125 Stockbroker Grapevine
Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a me ...
- Poj 1125 Stockbroker Grapevine(Floyd算法求结点对的最短路径问题)
一.Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a ...
- POJ1125 Stockbroker Grapevine 多源最短路
题目大意 给定一个图,问从某一个顶点出发,到其它顶点的最短路的最大距离最短的情况下,是从哪个顶点出发?须要多久? (假设有人一直没有联络,输出disjoint) 解题思路 Floyd不解释 代码 #i ...
- POJ 1125 Stockbroker Grapevine (Floyd最短路)
Floyd算法计算每对顶点之间的最短路径的问题 题目中隐含了一个条件是一个人能够同一时候将谣言传递给多个人 题目终于的要求是时间最短.那么就要遍历一遍求出每一个点作为源点时,最长的最短路径长是多少,再 ...
- Southern African 2001 Stockbroker Grapevine /// Floyd oj1345
题目大意: 输入n 接下来n行 每行输入m 接下来m对a,b 若干个人之间会传播谣言,但每个人传播给其他人的速度都不一样, 问最快的传播路线(即耗时最短的)中最耗时的一个传播环节. 如果其中有人不在这 ...
随机推荐
- prim算法,克鲁斯卡尔算法---最小生成树
最小生成树的一个作用,就是求最小花费.要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光 ...
- group by与avg(),max(),min(),sum()函数的关系
数据库表: create table pay_report( rdate varchar(8), --日期 region_id varchar(4), --地市 ...
- GNU/Linux的GNU是什么意思
这个组织中黑客云集,而且多是掌握核心技术的真正高手,他们的作品多是编译器.词法/语法分析器.底层函数库等大作.更重要的不是他们的技术,而是他们的哲学!他们的哲学就是技术上的“共产主义”——人人为我,我 ...
- LOJ 3089: 洛谷 P5319: 「BJOI2019」奥术神杖
题目传送门:LOJ #3089. 题意简述: 有一个长度为 \(n\) 的母串,其中某些位置已固定,另一些位置可以任意填. 同时给定 \(m\) 个小串,第 \(i\) 个为 \(S_i\),所有位置 ...
- Linux的capability深入分析(1)【转】
转自:https://blog.csdn.net/wangpengqi/article/details/9821227 一)概述: )从2.1版开始,Linux内核有了能力(capability)的概 ...
- 程序执行的过程分析--【sky原创】
程序执行的过程: 比如我们要执行3 + 2 程序计数器(PC) = 指令地址 指令寄存器(IR) = 正在执行的命令 累加器(AC) = 临时存储体 那么实际上执行了三条指令 每条指令 ...
- des结合base64加解密的python源码
#coding=utf8 from pyDes import * import base64 class Crypt_Error(): pass """ des方法,de ...
- MySql数据库细节使用规范
一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省 ...
- cf792b循环链表
头尾链接一下就好, /* 1 2 3 4 5 6 7:4 5 6 7 1 2 3:2 3 5 6 7 1:5 6 7 1 3:6 7 1 3:1 3 7 */ #include<bits/std ...
- WebService简介-02
WebService-面向服务编程SOA WebService-远程通信 运行效果: 1:添加服务器引用http://www.webxml.com.cn/WebServices/WeatherWebS ...