六度分离

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

题目范围给的比较小,只有 100 ,直接 floyd , 100³ 就可以过掉
两个之间最多只能有六个人,换句话说就是两个人之间的距离最大是 7 ,大于 7 后,就不满足六度分离理论了,因此对于最后的结果只需要判断是否有两个人之间的距离大于 7 就可以!
最后注意输出是 Yes 和 No ,不是 YES 和 NO…

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int N=110;
int dist[N][N];
int n,m;void floyd()
{for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
}int main()
{while(cin>>n>>m){bool flag=false;memset(dist,0x3f,sizeof dist);for(int i=1;i<=n;i++) dist[i][i]=0;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;x+=1;y+=1;dist[x][y]=dist[y][x]=1;}floyd();
//      for(int i=1;i<=n;i++)
//          for(int j=1;j<=n;j++)
//          cout<<i<<" "<<j<<" "<<dist[i][j]<<endl;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(dist[i][j]>7){flag=true;}if(!flag) cout<<"Yes"<<endl;else cout<<"No"<<endl;}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. python爬虫抓取信息_python爬虫爬取网上药品信息并且存入数据库
  2. B1928 日期差值
  3. windows下解决mysql5中文乱码的问题
  4. Java研发方向如何准备BAT技术面试答案(上)
  5. Angular程序架构
  6. 如何给APP开发属于自己的小程序
  7. 红帽子RedHat Linux 9.0
  8. Tiktok现阶段最简单的三种变现模式,小白也可轻松上手
  9. easyui tree的简单使用
  10. hibernate配置文件hibernate.cfg.xml的详细解释
  11. Microsoft Office 2016 简体中文 Vol 版镜像下载(Pro Plus、Visio、Project 下载)
  12. Visual Studio使用ILDasm反汇编工具查看托管模块
  13. 对接京东联盟,签名无效
  14. mysql 统计每天、每周、每月、每年数据
  15. 程序员表白技巧:程序员木讷? 我反手就是一串代码
  16. party_bid_core三种数据结构总结
  17. Pytorch学习日志之函数用法记录
  18. shp转osm格式——道路文件格式转换
  19. [PCL教程] PCL漫游之Filter、Features
  20. 在Java中计算各位数字立方和

热门文章

  1. DevOps 工程师面试问题(持续更新)
  2. CentOS7修改主机名的三种方法
  3. 十六种顶级的思维模型
  4. UltraEdit正则表达式使用(Regular Expressions in UltraEdit)
  5. php 无限执行,PHP FPM源代码反刍品味之一:无限运行程序
  6. (8.1.5.5)Android Testing Support Library翻译之Espresso 意图
  7. Ubuntu 17.10 中文无忧版
  8. linux nvidia显卡参数设置,硬件设置 – Nvidia显卡 - Linux Mint 学习笔记
  9. 华为MateBook D14 安装ubuntu16 wifi、蓝牙、触控板驱动问题解决
  10. Python 告警 UserWarning: .python-egg is writable by group/others 解决方案