题目描述:原题链接

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

思路:

枚举每一个人和别人的距离,若存在大于7则No,转化为求每一个人到每一个人的最短路径,因为N的值很小,所以Floyd的O(N^3)可以满足要求。

#include <iostream>
#include <cstdio>
const int INF=0x3f3f3f3f;
using namespace std;
int n,m;
int map[1005][1005];
void init()
{for(int i=0;i<n;i++)for(int j=0;j<n;j++){if(i==j)map[i][j]=0;elsemap[i][j]=INF;}
}
void floyd()
{for(int k=0;k<n;k++)for(int i=0;i<n;i++)for(int j=0;j<n;j++){if(map[i][j]>map[i][k]+map[k][j])map[i][j]=map[i][k]+map[k][j];}
}
int main()
{int a,b;while(~scanf("%d %d",&n,&m)){init();for(int i=0;i<m;i++){scanf("%d %d",&a,&b);map[a][b]=map[b][a]=1;}floyd();int ans=0;for(int i=0;i<n;i++)for(int j=0;j<n;j++){if(map[i][j]>7)ans=1;}if(ans)printf("No\n");elseprintf("Yes\n");}return 0;
}

六度分离【Floyd】相关推荐

  1. hdu 六度分离 floyd

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

  2. hdu1869六度分离(floyd)

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

  3. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  4. 一系列图论问题[转]

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  5. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  6. kk_想要学习的知识

    2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...

  7. jekins 指定分支_jenkins的pipeline拉取指定分支的代码

    脚本示例 pipeline { agent any options { durabilityHint 'PERFORMANCE_OPTIMIZED' timeout(time:5, unit: 'MI ...

  8. 图论练习题(存起来练)

    =============================以下是最小生成树+并查集======================================  [HDU]  1213 How Man ...

  9. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  10. 六度分离(hdu1869,floyd最短路)

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

最新文章

  1. QIIME 2用户文档. 4人体各部位微生物组分析实战Moving Pictures(2018.11)
  2. PHP中date函数月和日带0问题
  3. HTML5-WebSocket实现对服务器CPU实时监控
  4. java web基础编程题_云课堂javaweb微专业Java基础测试题3
  5. apache mahout_使用Apache Mahout创建在线推荐系统
  6. 领域应用 | 机器知道哪吒是部电影吗?解读阿里巴巴概念图谱AliCG
  7. SXSSFWorkbook使用——使用excel模板
  8. 未定义函数或变量_变量提升:JavaScript是顺序执行,为什么变量在定义之前执行不会报错而是报Underfined...
  9. Linux/Unix操作系统目录结构的来历
  10. SpringCloud整合Feign配置类之间的关系以及feign配置隔离的实现
  11. sqlplus 命令导入数据文件
  12. 深度学习涉及到的线性代数知识点总结(一)
  13. 魔兽顶级装备如何打造各个职业最强装备包括宝石和全身附魔
  14. 知乎热议最丑陋的数学公式:「四次方程求根」高票当选
  15. 项目质量管理__七种基本质量工具__老七工具和新七工具
  16. 微软新的邮件帐户域名 @live.com和@windowslive.com
  17. 物联网已经发展多年,为什么一直不温不火
  18. 全民Python时代已经到来
  19. MySQL安装1045错误代码解决方案
  20. 二十五条励志金句,让你迅速提升自己的价值!

热门文章

  1. 我和python的第一次亲密接触
  2. 关于使用dosbox与masm/MASMplus进行汇编语言的编译,link与执行中遇到问题的解决法小汇总(慢慢汇总更新)
  3. 面试:百度,阿里等--10/2015
  4. 上海移动网红套餐来袭,大流量融合套餐200兆宽带起免费用!
  5. 钻石DIAMOND一词来源于古法文DIAMAUND钻石
  6. 【module】subprocess
  7. Unity Shader-遮挡处理(X-Ray,遮挡描边,遮挡半透,遮挡溶解)
  8. 談話的力量:談話技巧助你成功
  9. emoji语言常用图标收集(有趣的emoji)
  10. 如果客户机同时得到多台dhcp服务器的ip地址_秘技,同时为三个女神装系统的方法...