1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
floyd算法

六度分离hdu1869 Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人,即只用6个人就可以将他们联系在一起,因此他的理论也被称为“六度分离”理论(six degrees of separation)。虽然米尔格兰姆的理论屡屡应验,一直也有很多社会学家对其兴趣浓厚,但是在30多年的时间里,它从来就没有得到过严谨的证明,只是一种带有传奇色彩的假说而已。 Lele对这个理论相当有兴趣,于是,他在HDU里对N个人展开了调查。他已经得到了他们之间的相识关系,现在就请你帮他验证一下“六度分离”是否成立吧。 Input 本题目包含多组测试,请处理到文件结束。 对于每组测试,第一行包含两个整数N,M(0N100,0M200),分别代表HDU里的人数(这些人分别编成0~N-1号),以及他们之间的关系。 接下来有M行,每行两个整数A,B(0=A,BN)表示HDU里编号为A和编号B的人互相认识。 除了这M组关系,其他任意两人之间均不相识。 Output 对于每组测试,如果数据符合“六度分离”理论就在一行里输出Yes,否则输出No。 每一对顶点间的最短路径 Dijkstra算法是求源点到其它顶点的最短路径。怎样求任意两个顶点之间的最短路径?我们可以把Dijkstra算执行n次,每次从不同的顶点开始,则算法时间复杂度为O(n3)。 Floyd弗洛伊德给出了另一个算法,时间复杂度也是O(n3),但是形式上简单些。 从演示中看算法思想 一个简单的图及其邻接矩阵如下: 从上面的D(-1)开始,对于每两个顶点u、v,在D(-1)中存储着一条路径u…v。现在我们考察,试着把a加到u、v的路径上能否,得到一条更短的路径,即如果u…a+a…vu…v的话,能够找到一条更短的路径。 从上面的D(0)开始,对于每两个顶点u、v,在D(0)中存储着一条路径u…v。现在我们考察,试着把b加到u、v的路径上能否,得到一条更短的路径,即如果u…b+b…vu…v的话,能够找到一条更短的路径。 从上面的D(1)开始,对于每两个顶点u、v,在D(1)中存储着一条路径u…v。现在我们考察,试着把c加到u、v的路径上能否,得到一条更短的路径,即如果u…c+c…vu…v的话,能够找到一条更短的路径。 现在,已经把所有的顶点都试了一遍,算法结束。每两个顶点之间的路径如D(2)所示。 HDOJ 1217 汇率税换 Sample Input 3 USDollar BritishPound FrenchFranc 3 USDollar 0.5 BritishPound (0.5倍对换) BritishPound 10.0 FrenchFranc FrenchFranc 0.21 USDollar 3 USDollar BritishPound FrenchFranc 6 USDollar 0.5 BritishPound USDollar 4.9 FrenchFranc BritishPound 10.0 FrenchFranc BritishPound 1.99 USDollar FrenchFranc 0.09 BritishPound FrenchFranc 0.19 USDollar 0 ?Sample Output Case 1: Yes (可以不以套汇成功) Case 2: No for(u=0;un;u++)//中间顶点 for(v=0;vn;v++)//起点 for(w=0;wn;w++)//终点 if(d[v][u]+d[u][w]d[v][w])//新找到一条更短路则更新 { d[v][w]=d[v][u]+d[u][w]; } PKU 1125 Stockbroker Grapevine Sample Input 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 Sample Output 3 2 3 10 * Sample Input 8 7 0 1 1 2 2 3 3 4 4 5 5 6 6 7 8 8 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 Sample Output Yes Y

文档评论(0)

cbf96793 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档