这道题虽然对大牛来说是floyd的水题,但我感觉作为入门题应给算是很好的一道题

floyd最值得注意的地方是中间变量放在for循环外围!!!

这是由其算法本身所决定的,其每一步求出任意一对顶点之间仅通过中间节点1,2,...,k的最短距离,当1,2,...,k扩展到所有顶点时,算法解出任意一对顶点间的最短距离,故顺序自然是:
for(k=1;k<n;++k)
//枚举任意一对顶点
由其状态转移方程来看,这个算法的顺序也很清晰,应该是先计算较小的k时任意ij之间的最短距离:
dij(k) = wij  如果k=0
min(dij(k-1),dik(k-1)+dkj(k-1))   如果k>=1
其中i,j表示点对,k表示第1,2,...,k时的最短路径

#include<iostream>
using namespace std;
int a[105][105];
void floyd(int m)
{
 for(int k=1;k<=m;k++)//注意中间变量放在外面
 {
  for(int j=1;j<=m;j++)
  {
   for(int i=1;i<=m;i++)
   {
    if(i==j||j==k||i==k)
        continue;
    if(a[i][j]>a[i][k]+a[k][j])
        a[i][j]=a[i][k]+a[k][j];
        else
        a[i][j]=a[i][j];
   }
  }
 }
 int max=10000;
 int x=0;
 for(int i=1;i<=m;i++)
 {
  int min=0;
  for(int j=1;j<=m;j++)//选出到达所有点的最大时间
  {
   if(i==j)
      continue;
      if(a[i][j]>min)
      min=a[i][j];
  }
  if(min<max)
  {
   max=min;
   x=i;
  }
 }
 if(x==0)
 cout<<"disjoint"<<endl;
 else
 cout<<x<<' '<<max<<endl;
}
int main()
{
 int n,m,x,y;
 while(cin>>n,n)
 {
  for(int i=1;i<=n;i++)
  {
   for(int j=1;j<=n;j++)//这个赋值是为了排除没有连接的节点
   a[i][j]=0xFFFF;
  }
  for(int i=1;i<=n;i++)
  {
   cin>>m;
   while(m--)
   {
    cin>>x>>y;
    a[i][x]=y;
   }
  }
  floyd(n);
 }
}

poj 1125 Stockbroker Grapevine 很好的一道floyd入门题相关推荐

  1. Poj 1125 Stockbroker Grapevine(Floyd算法求结点对的最短路径问题)

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

  2. POJ 1125 Stockbroker Grapevine

    题意:有n个人,传播谣言,每个人向其他人传播的时间作为边权,构成一个有向图,问把谣言告诉谁能最快传到所有人,输出这个人和最短时间. 解法:最短路.一个人传到所有人的最短时间即他到所有人最短路的最大值, ...

  3. poj 1125 Stockbroker Grapevine(Folyd)

    1 //nyoj的数据改成了1000 ,然后就跪了.. 好像大神们用spfa做的 2 #include<iostream> 3 #include<cstdio> 4 #incl ...

  4. poj 1125 Stockbroker(多源最短路径)

    题目来源:POJ 1125 简单题目分析及思路: 题意比较难懂,但是思路是多源最短路径,采用Floyd算法. Floyd是一种动态规划的算法,代码简洁易懂,对于稠密图效率要高于Dijkstra算法,但 ...

  5. POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)

    传送门:POJ 2342 题目大意: 有若干人参加一个聚会,如果两个人之间有直接的上下属关系,则只能去一个.每个人都有个高兴值,问高兴值之和最大是多少? 思路: 之前一直觉得树形DP比较难,现在发现树 ...

  6. TOJ 2857 Stockbroker Grapevine

    描述 Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of s ...

  7. poj pku图论、网络流入门题总结、汇总

    poj pku图论.网络流入门题总结.汇总 分类: acm图论 2010-08-25 18:49 243人阅读 评论(0) 收藏 举报 网络算法networkgraphconstructioninte ...

  8. 关于欧拉工程的一道递推题

    今天来讲的是在欧拉工程上的一道递推题,题目描述如下链接. 题目:https://projecteuler.net/problem=492 当然,这道题在51Nod上有一个比较通用的版本,链接如下 题目 ...

  9. 每天一道大厂SQL题【Day01】

    每天一道大厂SQL题[Day01] 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典题,以每日 ...

  10. 记一道MISC图片题(拖延癌晚期)

    title: 记一道misc图片题 date: 2017-10-26 15:17:12 tags: MISC 记一道MISC图片题(拖延癌晚期) 几个月前实验班考核的一个杂项 这个题是今年实验班考核的 ...

最新文章

  1. thinkphp框架开启页面gzip压缩
  2. IOS 2D游戏开发框架 SpriteKit--续(postion,锚点,游戏滚动场景)
  3. 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板
  4. nodejs项目的package-lock.json文件的用途
  5. linux系统利用wifi上网,【教程】Wii安装运行可用WIFI的Linux系统全攻略
  6. ASP调用web services
  7. HTML元素参考手册 HTML Elements Reference
  8. 计算机系统结构自学试卷,全国2004年4月高等教育自学考试计算机系统结构试题...
  9. 离婚冷静期有用吗?全国哪个省份的情侣最想结婚?大数据告诉你
  10. 高三!忏悔ing~(在这儿的第一篇随笔)
  11. mysql执行sql批处理
  12. 华为鸿蒙系统和奔驰公司,华为已行动,又是一个千亿BG,奔驰已经加入
  13. python pip install pil_用pip安装PIL
  14. html工作周报,可查看(周报).html
  15. mtk+android+wear,MTK专用处理器--可穿戴
  16. 关于Navicat和DBeaver的个人使用中问题
  17. 北京科技大学计算机组成原理,北京科技大学二十套计算机组成原理题库及答案...
  18. 电脑xp系统坏了,如何处理
  19. 笃行致远 砥砺前行 华云数据西南区域公司正式乔迁
  20. 【Verilog基础】一文搞懂线性反馈移位寄存器(LFSR)

热门文章

  1. 选课系统类图与数据结构图
  2. Asp.Net MVC 控制器
  3. 【基础知识】.Net基础加强 第四天
  4. ubuntu 10.04 下驱动程序的hello word
  5. 章节十五、6-log4 2-用默认的配置
  6. [BUG]Ubuntu server 16.04安装,无网卡驱动解决
  7. Linux的重定向与管道
  8. linux 安装 Django
  9. JavaScript中字符串的match与replace方法
  10. Web开发中最致命的8个小错误