“六度分离”理论——最短路问题
问题描述:
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;
}
“六度分离”理论——最短路问题相关推荐
- ResNext、ShuffleNet——与六度分离理论
resnext相对于其前辈,采用了分组卷积的思想,最初这一思想在AlexNet被提出,是为了分担计算压力,然而后来发现,它还可以提升网络性能,简直是一举两得. 不过,resnext并不完全等价于原有的 ...
- 六度分离理论、150法则与弱链接
六度分离理论.150法则与弱链接 社会性网络的理论基础源于六度理论/六度分隔理论/六度分离理论,(六度分隔理论,Six Degrees of Separation)和150法则(Rule Of 150 ...
- 六度分离理论、150法则与弱链接 (转载)
六度分离理论 1967年,哈佛大学的心理学教授Stanley Milgram(1933-1984)想要描绘一个连结人与社区的人际连系网.做过一次连锁信实验,结果发现了"六度分隔"现 ...
- 六度分离(HDU-1869)
Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)"的著名假说,大意 ...
- 图论专题HDU-1869 六度分离
六度分离(dijkstra算法或floyd算法) 题面 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)" ...
- HDU - 1869 六度分离 (Floyd算法)
1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为"小世界现象(small world phenomenon)"的著名假说,大意是说,任何2个素不相识的人中间最多只隔着 ...
- hdu 六度分离 floyd
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 题意分析:比较简单的最短路算法,最后只需判断最远两点距离是否大于7即可. /*六度分离Time ...
- 杭电1869六度分离
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU1869 六度分离【Dijkstra算法】
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
最新文章
- 远程实习 | 达特茅斯学院招收网络嵌入和图挖掘方向研究型实习生
- 当有键盘时如何在开始编辑时使UITextField向上移动?
- Docker之镜像、容器、仓库概念
- jvm性能调优 - 02JVM中内存区域
- centos 6.5配置php,CentOS 6.5安装php5.6
- CentOS 5.8 正式发布
- UI framework显示message technical information的实现
- 在树莓派是安装并配置NTP服务
- java编译_解析 Java 即时编译器原理。
- Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
- 图书管理系统详细设计说明书_书城管理系统不同模块在图书管理中体现不同作用...
- 使用recyclerView实现无限循环banner效果
- python有趣小程序-python好玩的小程序
- 局域网共享文件的方法
- matlab激光扩束总结,激光扩束系统设计(推荐).doc
- ES 根据查询条件求和sum
- 用计算机制作思维导图,想用电脑做好思维导图你得先了知道这些事
- Joel Spolsky在耶鲁大学的演讲(上)
- Day25——组合总和III、电话号码的字母组合
- 香港美食攻略(3)——源记喳咋