题解:

有N个股票经济人能够互相传递消息。他们之间存在一些单向的通信路径。如今有一个消息要由某个人開始传递给其它全部人。问应该由哪一个人来传递,才干在最短时间内让全部人都接收到消息。

显然,用Floyd算法,然后选出每一个点到其它点的最长距离其中的最短距离。

  1. /** \brief poj 1125 Floyd
  2. *
  3. * \param date 2014/7/31
  4. * \param state AC
  5. * \return memory 756k time 0ms
  6. *
  7. */
  8.  
  9. #include <iostream>
  10. #include <fstream>
  11. #include <cstring>
  12.  
  13. using namespace std;
  14.  
  15. const int MAXN=101;
  16. int DistMap[MAXN][MAXN];
  17. int n;
  18. const int INF=20;
  19. //int best;
  20. //int num;
  21.  
  22. //bool Floyd()
  23. void Floyd()
  24. {
  25. for(int k=1;k<=n;k++)
  26. {
  27. for(int i=1;i<=n;i++)
  28. {
  29. for(int j=1;j<=n;j++)
  30. {
  31. if(i!=j && DistMap[i][j]>DistMap[i][k]+DistMap[k][j])
  32. DistMap[i][j]=DistMap[i][k]+DistMap[k][j];
  33. }
  34. }
  35. }
  36. //
  37. int maxlength, min_in_max=INF,flag_source;
  38. for(int i=1;i<=n;i++)//以i点作为各通路源点
  39. {
  40. maxlength=0;
  41. for(int j=1;j<=n;j++)
  42. {
  43. if(i!=j && DistMap[i][j]>maxlength)//寻找i到j的最长路径
  44. {
  45. maxlength=DistMap[i][j];
  46. }
  47. }
  48. if(min_in_max>maxlength)
  49. {
  50. min_in_max=maxlength;//寻找最长路径中的最短路
  51. flag_source=i;
  52. }
  53. }
  54.  
  55. /*Output*/
  56. if(min_in_max<INF)
  57. cout<<flag_source<<' '<<min_in_max<<endl;
  58. else
  59. cout<<"disjoint"<<endl;
  60. }
  61.  
  62. int main()
  63. {
  64. //cout << "Hello world!" << endl;
  65. //freopen("input.txt","r",stdin);
  66. while(scanf("%d",&n)!=EOF)
  67. {
  68. memset(DistMap,INF,sizeof(DistMap));
  69. if(n==0)break;
  70. int num,v,w;
  71. for(int i=1;i<=n;i++)
  72. {
  73. cin>>num;
  74. for(int j=0;j<num;j++)
  75. {
  76. //DistMap[][]
  77. scanf("%d%d",&v,&w);
  78. DistMap[i][v]=w;
  79. }
  80. }
  81. //Floyd
  82. //if(Floyd()==false)
  83. // cout<<"disjoint"<<endl;
  84. //else cout<<num<<" "<<best<<endl;
  85. Floyd();
  86. }
  87. return 0;
  88. }

poj1125--Floyd的更多相关文章

  1. poj1125(Floyd最短路)

    //Accepted 164 KB 0 ms //floyd #include <cstdio> #include <cstring> #include <iostrea ...

  2. poj1125&zoj1082Stockbroker Grapevine(Floyd算法)

    Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Description Stockbrokers are known to ...

  3. poj1125 Stockbroker Grapevine Floyd

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

  4. POJ-1125 Stockbroker Grapevine---Floyd应用

    题目链接: https://vjudge.net/problem/POJ-1125 题目大意: 股票经纪人要在一群人中散布一个谣言,而谣言只能在亲密的人中传递,题目各处了人与人之间的关系及传递谣言所用 ...

  5. POJ Stockbroker Grapevine(floyd)

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

  6. floyd算法学习笔记

    算法思路 路径矩阵 通过一个图的权值矩阵求出它的每两点间的最短路径矩阵.从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1):又 ...

  7. 最短路(Floyd)

    关于最短的先记下了 Floyd算法: 1.比较精简准确的关于Floyd思想的表达:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设maz ...

  8. 最短路径之Floyd算法

    Floyd算法又称弗洛伊德算法,也叫做Floyd's algorithm,Roy–Warshall algorithm,Roy–Floyd algorithm, WFI algorithm. Floy ...

  9. UVALive 4431 Fruit Weights --floyd,差分约束?

    题意: 给出一些关系用aX <= bY表示, 最后查询aX 和 bY的关系,是>=,==,<=,还是不能确定,还是出现了矛盾. 解法:对每一个关系其实都可以建一条X->Y的边, ...

  10. 洛谷P1119 灾后重建[Floyd]

    题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...

随机推荐

  1. 常用快捷键以及linux命令整理

    关于快捷键的使用,网上有很多.自己在使用过程中不断整理用到的知识点.一个项目完成了就把涉及用到的快捷键和命令介绍给大家,都是一些比较基础的,常用的命令.希望大家有好的知识点,命令可以及时交流整理. 一 ...

  2. javascript之进阶

    一 模态框 1 什么是模态框 模态框(Modal)是覆盖在父窗体上的子窗体.指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应.如单击[确定]或[取消]按钮等将该对话框关闭. 2 ...

  3. 卡牌游戏(bzoj 3191)

    Description   N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字 ...

  4. 【CF505D】Mr. Kitayuta's Technology

    题目大意: 在一个有向图中,有n个顶点,给出m对数字(u,v)表示顶点u和顶点v必须直接或者间接相连,让你构造一个这样的图,输出最少需要多少条边. 挖坑待填 官方题解链接:http://codefor ...

  5. ADO:DataSet存入缓存Cache中并使用

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  6. ie下table无法设置宽度的坑,解决方案:在td里面添加div把td宽度撑开即可。

    <td><div style="width:180px"> <a data-b="2" class="btn btn-s ...

  7. 标准C程序设计七---55

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  8. 46深入理解C指针之---内存分析

    一.size_t:用于安全表示长度,所有平台和系统都会解析成自己对应的长度 1.定义:size_t类型表示C中任何对象所能表示的最大长度,是个无符号整数:常常定义在stdio.h或stdlib.h中 ...

  9. /sys/class/gpio 文件接口操作IO端口(s3c2440)

    http://blog.csdn.net/mirkerson/article/details/8464231 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的 ...

  10. 利用例子来理解spring的面向切面编程(使用@Aspect)

    上篇的例子,自动装配和自动检测Bean是使用注解的方式处理的,而面向切面编程是使用aop标签处理的,给我感觉就像中西医参合一样. 现在就来优化优化,全部使用注解的方式处理. 1.工程图: