水题,裸的Floyd。最后要求遍历一遍图的最短路径,只需要枚举将当前每一个点作为起始点。如果它不能到达其中的某一点,则该点不可能作为起始点;否则,由该点开始遍历全图的最短路径是到所有点距离中的最大值。最终结果就是这些最大值中的最小值。

 #include<iostream>
#include<cstdio>
using namespace std;
const int MAXN=+;
const int INF=;
int map[MAXN][MAXN]; int main()
{
int n;
while (scanf("%d",&n))
{
if (n==) break;
for (int i=;i<n;i++)
for (int j=;j<n;j++) map[i][j]=INF; for (int i=;i<n;i++)
{
int m;
scanf("%d",&m);
for (int j=;j<m;j++)
{
int people,time;
scanf("%d%d",&people,&time);
map[i][people-]=time;
}
} for (int k=;k<n;k++)
for (int i=;i<n;i++)
for (int j=;j<n;j++)
if (i!=j && k!=i && k!=j && map[i][j]>map[i][k]+map[k][j])
{
map[i][j]=map[i][k]+map[k][j];
} int ans=INF,ansb;
for (int i=;i<n;i++)
{
bool reach=true;
int maxlen=-;
for (int j=;j<n && reach;j++)
{
if (i!=j && map[i][j]==INF) reach=false;
if (i!=j && map[i][j]>maxlen) maxlen=map[i][j];
}
if (reach && maxlen<ans)
{
ans=maxlen;
ansb=i;
}
}
if (ans==INF) cout<<"disjoint";else cout<<ansb+<<' '<<ans;
cout<<endl;
} return ;
}

【Floyd】POJ1125-Stockbroker Grapevine的更多相关文章

  1. BZOJ1599 find the mincost route 【floyd】

    题目链接 BZOJ1599 题解 最小环模板?周末了养生一下[逃] 解释一下原理 \(floyd\)算法每一轮求出以\([1,k]\)为中介点的最短路 我们对于一个环,考虑环上编号最大的点,在\(k\ ...

  2. 【Floyd】珍珠

    [题目描述] 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面 ...

  3. POJ 1125 Stockbroker Grapevine【floyd】

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

  4. poj1125 Stockbroker Grapevine Floyd

    题目链接:http://poj.org/problem?id=1125 主要是读懂题意 然后就很简单了 floyd算法的应用 代码: #include<iostream> #include ...

  5. POJ1125-Stockbroker Grapevine【Floyd】(模板题)

    <题目链接> 题目大意: 题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的 ...

  6. POJ1125 Stockbroker Grapevine

    Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a me ...

  7. 【Floyd】文化之旅

    [NOIP2012]文化之旅 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一 种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不 ...

  8. HDU 1869 六度分离【floyd】

    题意:给出n个人,m个关系,问是否满足任意两个人之间的距离通过6个人就可以连接 用floyd就可以了,注意距离是大于7 #include<iostream> #include<cst ...

  9. UVa 821 Page Hopping【Floyd】

    题意:给出一个n个点的有向图,任意两个点之间都相互到达,求任意两点间最短距离的平均值 因为n很小,所以可以用floyd 建立出图,然后用floyd,统计d[][]不为0且不为INF的边的和及条数,就可 ...

随机推荐

  1. Struts2+Hibernate实现图书管理系统

    效果图 部分代码 Books.java package entity; import java.util.Date; public class Books { //书籍编号 private Strin ...

  2. bing查询旁站脚本

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #by i3ekr import re,optparse,sys,requests,time,os pars ...

  3. ssh日常优化使用

    config文件的使用 ssh命令默认会加载 ~/.ssh/config 文件作为配置文件,如果没有则采用默认配置.如果我们想要对ssh进行定制,那么就可以使用如下方法 [root@linux-nod ...

  4. Python模块学习 - click

    Click模块 click模块是Flask的作者开发的一个第三方模块,用于快速创建命令行.它的作用与Python标准库的argparse相同,但是,使用起来更简单. click是一个第三方库,因此使用 ...

  5. Linux 入门记录:二十、Linux 包管理工具 YUM

    一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...

  6. linux信号Linux下Signal信号太详细了,终于找到了

    linux信号Linux下Signal信号太详细了,终于找到了 http://www.cppblog.com/sleepwom/archive/2010/12/27/137564.html

  7. 006 Java并发编程wait、notify、notifyAll和Condition

    原文https://www.cnblogs.com/dolphin0520/p/3920385.html#4182690 Java并发编程:线程间协作的两种方式:wait.notify.notifyA ...

  8. android 图片透明

    在ImageButton中载入图片后,图片周围会存在一圈白边,会影响到美观,其实解决这个问题有两种方法 一种方法是将ImageButton的背景改为所需要的图片.如:android:backgroun ...

  9. C++ 模板的用法

    C++中的高阶手法就会用到泛型编程,主要有函数模板, 在程序中使用模板的好处就是在定义时不需要指定具体的参数类型,而在使用时确可以匹配其它任意类型, 定义格式如下 template <class ...

  10. Leetcode 之Wildcard Matching(32)

    跟上题类似,主要考虑‘*’的匹配问题.如果遇到‘*’,则跳过继续匹配,如果不匹配,则s++,重新扫描. bool isMatch2(const char *s, const char *p) { if ...