http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29015#problem/D

http://acm.hdu.edu.cn/showproblem.php?pid=1869

六度分离

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 3124    Accepted Submission(s): 1212

Problem Description

1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人,即只用6个人就可以将他们联系在一起,因此他的理论也被称为“六度分离”理论(six degrees of separation)。虽然米尔格兰姆的理论屡屡应验,一直也有很多社会学家对其兴趣浓厚,但是在30多年的时间里,它从来就没有得到过严谨的证明,只是一种带有传奇色彩的假说而已。

Lele对这个理论相当有兴趣,于是,他在HDU里对N个人展开了调查。他已经得到了他们之间的相识关系,现在就请你帮他验证一下“六度分离”是否成立吧。

Input

本题目包含多组测试,请处理到文件结束。

对于每组测试,第一行包含两个整数N,M(0<N<100,0<M<200),分别代表HDU里的人数(这些人分别编成0~N-1号),以及他们之间的关系。

接下来有M行,每行两个整数A,B(0<=A,B<N)表示HDU里编号为A和编号B的人互相认识。

除了这M组关系,其他任意两人之间均不相识。

Output

对于每组测试,如果数据符合“六度分离”理论就在一行里输出"Yes",否则输出"No"。

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

Yes

Author

linle

Source

2008杭电集训队选拔赛——热身赛

Recommend

lcy

解析:

思路:

无向图,用floyd求最短路径,判断任意两点的距离是否超过6

268 KB 62 ms C++ 958 B

*/

#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
#include <iostream>
using namespace std;
const int maxn=100+10;
const int inf=100000001;
int d[maxn][maxn];
int n,m;
void floyd()
{
for(int k=0;k<n;k++)for(int i=0;i<n;i++)for(int j=0;j<n;j++){if(d[i][k]<inf&&d[k][j]<inf){if(d[i][j]>d[i][k]+d[k][j]){d[i][j]=d[i][k]+d[k][j];}}}
}
int main()
{int i,j,ok;while(scanf("%d%d",&n,&m)!=EOF){   ok=1;for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
d[i][j]=0;
else
d[i][j]=inf;
}
int u,v;for(i=1;i<=m;i++){scanf("%d%d",&u,&v);d[u][v]=d[v][u]=1;}floyd();for(i=0;i<n;i++)if(ok)for(j=0;j<n;j++){//printf("d[%d][%d]==%d\n",i,j,d[i][j]);if((d[i][j]-1)>6){ok=0;break;}}printf("%s\n",ok? "Yes":"No");}// system("pause");return 0;
}

六度分离(hdu1869,floyd最短路)相关推荐

  1. 六度分离(Floyd算法)

    六度分离(Floyd) 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)"的著名假说,大意是说,任何2个素 ...

  2. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2343  Solved: 1266 [Submit][Status][Discuss] Descrip ...

  3. 坐在马桶上看算法:只有五行的Floyd最短路算法

    坐在马桶上看算法:只有五行的Floyd最短路算法 此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在"Communications of the ACM" ...

  4. 【啊哈!算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  5. 【算法】只有五行的Floyd最短路算法

     暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程. 上图中有4个城市8条公路,公路上的数字 ...

  6. SSL 1760——商店选址问题(Floyd最短路)

    Description 给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短. Input 第一行为n(共有几个城市): N小于201 第二行至第n+1行为城市地图(用邻接 ...

  7. 六度分离(floyd算法,SPFA算法,最短路—Dijkstra算法)

    Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) ...

  8. hdu1869 六度分离(Floyd)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 转载请注明出处:http://blog.csdn.net/u012860063?viewmode ...

  9. Wikioi 1020 孪生蜘蛛 Label:Floyd最短路

    题目描述 Description 在G城保卫战中,超级孪生蜘蛛Phantom001和Phantom002作为第三层防卫被派往守护内城南端一带极为隐秘的通道. 根据防护中心的消息,敌方已经有一只特种飞蛾 ...

最新文章

  1. VTK:绘图之BarChart
  2. GreenPlum查看表和数据库大小
  3. Smart template的控件能否当成普通控件来用 1
  4. 判断文件是否存在一个API函数
  5. Leetcode 771. Jewels and Stones
  6. spring securiy使用总结
  7. 【劲峰论道时空分析技术-学习笔记】4 如何度量时空变化
  8. paddleocr识别VIN码
  9. 分享一些学习和获取资料的网站
  10. 二进制加法器c语言程序,二进制加法器电路框图
  11. 双足机器人的稳定性判据_双足机器人稳定性判据研究
  12. JAVA——从基础学起(五)类和对象
  13. 点钞机语音怎么打开_弱弱问一下验钞机怎么开声音
  14. APISpace 让你快速获取名言警句
  15. java中的compareToIgnoreCase和compareTo的区别
  16. PatchMatchNet实践(环境配置、相关软件安装)及理论学习笔记(更新中)
  17. 即使是个收外卖的前台小妹,也要时刻想着如何咸鱼翻身
  18. 查询maven依赖的网址
  19. 安徽省省二c语言题库及答案,07_06省二级选择题题库C语言(含答案)
  20. Python爬虫+数据可视化教学:分析猫咪交易数据

热门文章

  1. User Agreement(APP用户协议)
  2. TC27x寄存器学习
  3. Windows update 注册表项
  4. poj1723 SOLDIERS
  5. 关于组装电脑注意事项
  6. 信息系统项目管理师必背整体核心考点
  7. int 和 枚举类型enum的转换 in c++
  8. vue引入外部js文件(第三方js工具或者jq库)
  9. 必备的 6 大计算机网络基础知识点!会 3 个以上就很牛逼了
  10. webdriver设置浏览器全屏及设置浏览器窗口为特定大小的方法