六度分离(floyd)
六度分离
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
当两个素不相识的人中间隔着至多六个人则理论成立。
0<N<100,用floyd算法不会爆
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=105;
const int Inf=999999999;
int n,m;
int G[N][N];
void floyd(){for(int k=0;k<n;k++){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(G[i][k]<Inf&&G[k][j]<Inf)G[i][j]=min(G[i][j],G[i][k]+G[k][j]);}}}bool flag=true;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(G[i][j]>7) {//当理论不成立时,即中间的人数大于6,边长和大于7flag=false;break;}}if(!flag) break;}if(flag) printf("Yes\n");else printf("No\n");
}
int main(){int a,b;while(~scanf("%d%d",&n,&m)){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i==j) G[i][j]=0;else G[i][j]=Inf;}}for(int i=0;i<m;i++){scanf("%d%d",&a,&b);G[a][b]=G[b][a]=1;//初始化,把人看成点,相互认识的人用边长为1的边连接起来}floyd();}return 0;
}
转自https://blog.csdn.net/qq_34195441/article/details/52132657
六度分离(floyd)相关推荐
- hdu 六度分离 floyd
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 题意分析:比较简单的最短路算法,最后只需判断最远两点距离是否大于7即可. /*六度分离Time ...
- hdu1869六度分离(floyd)
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- kk_想要学习的知识
2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...
- jekins 指定分支_jenkins的pipeline拉取指定分支的代码
脚本示例 pipeline { agent any options { durabilityHint 'PERFORMANCE_OPTIMIZED' timeout(time:5, unit: 'MI ...
- 图论练习题(存起来练)
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Man ...
- ACM比赛经验、刷题记录及模板库总结(更新中)
前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...
- 六度分离(hdu1869,floyd最短路)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29015#problem/D http://acm.hdu.edu.cn/showprob ...
最新文章
- android 3.0+百度地图api地图如何移动到指定的经纬度处
- VC GDI+: error C2660: 'new' : function does not take 3 parameters
- 8.4 parted:磁盘分区工具
- PAT 1052. 卖个萌 (20)
- P2626 斐波那契数列(升级版)
- mfc中主窗体显示(任务栏上方显示)
- cocos2d-x学习笔记番外篇05:如何快速屏蔽触摸
- 乐回购服务器异常等待修复,楚留香4.26立夏集活动玩法大全 聚沙成塔春尽雅集拄食兆吉奇趣斗蛋张榜升擂迎夏祈福莲舫觅珍曲水台_游侠手游...
- 发动机冒黑烟_汽车发动机冒黑烟什么原因,汽车发动机都可能发生哪些故障?...
- 计算机二级excel怎么绝对引用,excel中绝对引用的快捷键
- Android 修改wifi阀值,6种简单方法使WiFi网络提速
- 在Visual Studio.NET中更改颜色-黑色与白色
- 设计模式七大原则——依赖倒转原则
- cuda官网下载,本机显卡驱动与cuda、cudnn、pytorch、torchvision安装版本对应表,以及完全卸载CUDA方法
- 新版白话空间统计(9):置信度的初探
- 从程序员到项目经理(二十一):谁都需要成就感
- Adobe认证专访|003期:跨界摄影师,我眼中的世界与别人不一样
- 学习Java的学习顺序
- 汇通网fx678交易工场是一个骗子集团
- 展讯7715 Android 平台编译
热门文章
- 4月8日链家考试感想
- [网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
- JavaPoet使用详解
- pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件
- phonegap app推送新手教程与坑
- 什么是MTTF、MTBF、MTRF
- 测试眉形的有哪个软件_适合眉毛的软件
- 关于RGV下料的智能动态调度
- Civil 3d 之枚举 SpiralType
- html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86