http://poj.org/problem?id=1125

题意 : 就是说想要在股票经纪人中传播谣言,先告诉一个人,然后让他传播给其他所有的经纪人,需要输出的是从谁开始传播需要的时间最短,输出这个人的编号和传播需要的最短的时间;

思路 : 典型的最短路问题,就是求最短传播时间,用floyd求出两两最短路。一般来说,因为告诉一个经纪人之后,他可以同时给其他他可以传播的所有人进行传播,所以,只要找到他需要传播的许多人中,找那个传播时间最长的,就能保证他可以给所有他能传播的人都传播到这个谣言,而其余他不能传播到的人,就要靠已传播的人继续往下传播。找n个人中以每个人为开始点的时候传播到所有人中的最长的那个时间以确保所有人都收到谣言,而再循环遍历一下,找这n个最长时间中最短的那个就可以了。

样例解释 : 3

2 2 4 3 5

2 1 2 3 6

2 1 2 2 2

5

3 4 4 2 8 5 3

1 5 8

4 1 6 4 10 2 7 5 2

0

2 2 5 1 5

0

样例是多组输入的,第一行输入n,以0结束,下面是n行,编号默认由1到n代表着n个经纪人,每一行开头一个数字m,代表着编号为i的经纪人可以与m个人传递谣言,然后就是m组数,每组有两个数字,一个是可以与编号为x的经纪人传递消息,另一个是传递消息需要的时间

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; const int oo = <<;
const int maxn = ;
int map[maxn][maxn];
int n; void floyd()
{
for(int k = ; k <= n ; k ++)
{
for(int i = ; i <= n ; i++)
{
for(int j = ; j <= n ; j++)
{
if( map[i][j] > map[i][k] + map[k][j])
map[i][j] = map[i][k]+map[k][j];
}
}
}
} void Init()
{
for(int i = ; i <= n ; i ++)
{
for(int j = ; j <= n ; j++)
{
map[j][i] = map[i][j] = oo;
}
}
} int main()
{
while(~scanf("%d",&n)&&n)
{
Init();
int m,x,y;
for(int i = ; i <= n ; i++)
{
scanf("%d",&m);
for(int j = ; j <= m ; j++)
{
scanf("%d %d",&x,&y);
map[i][x] = y ;
}
}
floyd();
int maxlength;
int min_in_max = oo ;
int flag_source;
for(int i = ; i <= n ; i++) //以i点作为各通路源点
{
maxlength=;
for(int j = ; j <= n ; j++)
if(i != j && maxlength < map[i][j]) //寻找i到j的最长路径
maxlength = map[i][j];
if(min_in_max > maxlength)
{
min_in_max = maxlength; //寻找最长路径中的最短路
flag_source = i ; //该短路所在路径的源点记录
}
}
if(min_in_max<oo)
cout<<flag_source<<' '<<min_in_max<<endl;
else
cout<<"disjoint"<<endl;
}
return ;
}

POJ 1125 Stockbroker Grapevine(floyd)的更多相关文章

  1. poj 1125 Stockbroker Grapevine(多源最短)

    id=1125">链接:poj 1125 题意:输入n个经纪人,以及他们之间传播谣言所需的时间, 问从哪个人開始传播使得全部人知道所需时间最少.这个最少时间是多少 分析:由于谣言传播是 ...

  2. POJ 1125 Stockbroker Grapevine【floyd简单应用】

    链接: http://poj.org/problem?id=1125 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  3. Stockbroker Grapevine(floyd)

    http://poj.org/problem?id=1125 题意: 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时, 输入数据结束),然后接下来N行描述第i(1< ...

  4. poj 1125 Stockbroker Grapevine(最短路 简单 floyd)

    题目:http://poj.org/problem?id=1125 题意:给出一个社交网络,每个人有几个别人可以传播谣言,传播谣言需要时间.问要使得谣言传播的最快,应该从那个人开始传播谣言以及使得所有 ...

  5. POJ 1125 Stockbroker Grapevine(最短路基础题)

    Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of spre ...

  6. POJ Stockbroker Grapevine(floyd)

    https://vjudge.net/problem/POJ-1125 题意: 题意不是很好理解,首先输入一个n,表示有n个股票经纪人,接下来输入n行,每行第一个数m为该股票经纪人认识的经纪人数,然后 ...

  7. poj 1125 Stockbroker Grapevine (dij优化 0ms)

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

  8. POJ 1125 Stockbroker Grapevine【floyd】

    很裸的floyd #include<cstdio> #include<string.h> #include<algorithm> #define maxn 201 ...

  9. 最短路(Floyd_Warshall) POJ 1125 Stockbroker Grapevine

    题目传送门 /* 最短路:Floyd模板题 主要是两点最短的距离和起始位置 http://blog.csdn.net/y990041769/article/details/37955253 */ #i ...

随机推荐

  1. adb连接不上手机

    昨天电脑重装了系统,今天打开之前的eclips工作环境,点击run as -> android application,一直报各种诡异的错误,总之就是连接不上手机. 其中包括 Adb conne ...

  2. DIV_ROUND_UP(x,y)实现x/y向上取整

    #define DIV_ROUND_UP(x,y) (((x) + ((y) - 1)) / (y)) 1.问题 x.y都是整数,且x > 1, y > 1,求 x / y的向上取整,即: ...

  3. Oracle11g数据库安装

    一.安装流程截图(没截图部分都默认) 服务器如果不是单独的数据库服务器,内存分配大概1/4即可. 二.安装后,表空间,以及创建账号脚本 sqlplus / as sysdba 登陆数据库,执行 /*第 ...

  4. JS遇到的问题解决

    1.input 里使用onclick事件,整整花了1个半小时,onclick里面直接用Location.href不需要加<script></script> <?php / ...

  5. Winform上传下载文件代码

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...

  6. 自定义一个WPF的PathButton

    一.背景 做项目时总是少不了Button,但是普通的Button大家都不喜欢用,总是想要自定义的Button,正好项目中用到不要边框的Button,并且是形状也是根据功能不同而变化的,并且窗口程序是会 ...

  7. hdu 5769 Substring 后缀数组 + KMP

    http://acm.hdu.edu.cn/showproblem.php?pid=5769 题意:在S串中找出X串出现的不同子串的数目? 其中1 <= |S| < $10^5$ 官方题解 ...

  8. Setting composer minimum stability for your application

    Do you have a confusion of how do you determine the stability when using composer dependency manager ...

  9. kendo ui template的用法

    kendo ui template的用法: Kendo UI 框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaScript数据合并成最终的H ...

  10. 20145120黄玄曦 《java程序设计》 寒假学习总结

    1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...