问题描述:

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"。


样例输入:

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


样例输出:

Yes
Yes


问题分析:

这是一道非常简单的最短路题,但是要仔细理解题意,不是用并查集,这一点需要注意。

本题就是判断两点的最短距离是否大于7.大于7就No,小于等于7就是Yes.


解决方案:

#include "stdio.h"
#include "string.h"
#include "algorithm"
using namespace std;
int main ()
{int e[100][100];int n,m,i,j,k;int inf=99999999;while(~scanf("%d%d",&n,&m)){//初始化 memset(e,0,sizeof(e));for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j)e[i][j]=0;elsee[i][j]=inf;}}//读入边 for(i=0;i<m;i++){int t1,t2;scanf("%d%d",&t1,&t2);e[t1][t2]=e[t2][t1]=1;}//五行核心代码。 for(k=0;k<n;k++){for(i=0;i<n;i++){for(j=0;j<n;j++){if(e[i][j]>e[i][k]+e[k][j])e[i][j]=e[i][k]+e[k][j];}}}int flag=0;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(e[i][j]>7)//判断是否大于7 {flag=1;break;}}if(flag==1)break;}if(flag==1)printf("No\n");elseprintf("Yes\n");
}return 0;
}

“六度分离”理论——最短路问题相关推荐

  1. ResNext、ShuffleNet——与六度分离理论

    resnext相对于其前辈,采用了分组卷积的思想,最初这一思想在AlexNet被提出,是为了分担计算压力,然而后来发现,它还可以提升网络性能,简直是一举两得. 不过,resnext并不完全等价于原有的 ...

  2. 六度分离理论、150法则与弱链接

    六度分离理论.150法则与弱链接 社会性网络的理论基础源于六度理论/六度分隔理论/六度分离理论,(六度分隔理论,Six Degrees of Separation)和150法则(Rule Of 150 ...

  3. 六度分离理论、150法则与弱链接 (转载)

    六度分离理论 1967年,哈佛大学的心理学教授Stanley Milgram(1933-1984)想要描绘一个连结人与社区的人际连系网.做过一次连锁信实验,结果发现了"六度分隔"现 ...

  4. 六度分离(HDU-1869)

    Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)"的著名假说,大意 ...

  5. 图论专题HDU-1869 六度分离

    六度分离(dijkstra算法或floyd算法) 题面 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)" ...

  6. HDU - 1869 六度分离 (Floyd算法)

    1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)"的著名假说,大意是说,任何2个素不相识的人中间最多只隔着 ...

  7. hdu 六度分离 floyd

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 题意分析:比较简单的最短路算法,最后只需判断最远两点距离是否大于7即可. /*六度分离Time ...

  8. 杭电1869六度分离

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. HDU1869 六度分离【Dijkstra算法】

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. 远程实习 | 达特茅斯学院招收网络嵌入和图挖掘方向研究型实习生
  2. 当有键盘时如何在开始编辑时使UITextField向上移动?
  3. Docker之镜像、容器、仓库概念
  4. jvm性能调优 - 02JVM中内存区域
  5. centos 6.5配置php,CentOS 6.5安装php5.6
  6. CentOS 5.8 正式发布
  7. UI framework显示message technical information的实现
  8. 在树莓派是安装并配置NTP服务
  9. java编译_解析 Java 即时编译器原理。
  10. Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
  11. 图书管理系统详细设计说明书_书城管理系统不同模块在图书管理中体现不同作用...
  12. 使用recyclerView实现无限循环banner效果
  13. python有趣小程序-python好玩的小程序
  14. 局域网共享文件的方法
  15. matlab激光扩束总结,激光扩束系统设计(推荐).doc
  16. ES 根据查询条件求和sum
  17. 用计算机制作思维导图,想用电脑做好思维导图你得先了知道这些事
  18. Joel Spolsky在耶鲁大学的演讲(上)
  19. Day25——组合总和III、电话号码的字母组合
  20. 香港美食攻略(3)——源记喳咋

热门文章

  1. JAVA基础——第二章,变量,数据类型和运算符
  2. FaE:基于符号知识的适应性和可解释的神经记忆
  3. 赵呆呆,Fight!
  4. Android实习周记:第一周,井底之蛙上岸
  5. 2019杭州(准)独角兽企业
  6. Android 解压zip压缩包 (压缩包内有多级目录)
  7. SpringCloud Netflix的核心组件
  8. 共创数字国企丨金蝶云・苍穹应邀参加国有企业数字化转型与发展研讨会
  9. Test Renderer
  10. 由宇宙红移引起的微波噪声,进而推出宇宙的各向同性