hdu 1869 六度分离
来源:互联网 发布:淘宝网儿童棉服 编辑:程序博客网 时间:2024/04/30 12:58
点击打开链接hdu 1869
思路:最短路+floyd
分析:
1 题目是要求所有的数据能否满足“六度分离”,那么我们就想到所有点之间的最短距离。
2 应用floyd,如果两点之间有联系那么距离标记为1,那么最后只要判断是不是每两个人之间的距离是不是都不大于7(这里为什么是7不是6自己画图).
代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;#define MAXN 110#define INF 0xFFFFFFFint n , m;int dis[MAXN][MAXN];void init(){ for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++) dis[i][j] = INF; dis[i][i] = 0; }}int min(int a , int b){ return a < b ? a : b;}void floyd(){ for(int k = 0 ; k < n ; k++){ for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++) dis[i][j] = min(dis[i][j] , dis[i][k]+dis[k][j]); } }}int main(){ int a , b , flag; while(scanf("%d%d" , &n , &m) != EOF){ init(); for(int i = 0 ; i < m ; i++){ scanf("%d%d" , &a , &b); dis[a][b] = dis[b][a] = 1; } floyd(); flag = 1; for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++){ if(dis[i][j] > 7){ flag = 0; break; } } if(!flag) break; } if(flag) printf("Yes\n"); else printf("No\n"); } return 0;}
- hdu 1869 六度分离
- hdu 1869 六度分离
- hdu 1869 六度分离
- 六度分离 hdu 1869
- hdu 1869 六度分离
- hdu 1869 六度分离
- HDU 1869 六度分离
- HDU 1869 六度分离
- hdu 1869 六度分离
- hdu 1869 六度分离
- hdu 1869 六度分离
- hdu-1869 六度分离
- hdu 1869 六度分离
- hdu 1869 六度分离
- hdu 1869 六度分离
- HDU 1869 六度分离
- HDU-1869六度分离
- HDU--1869六度分离
- 性能改善的一种模式
- 诺基亚中国市场严重衰退销量剧减64%
- EffectiveC++ Item12
- 繁体字非主流伤感日志_親愛的,為什麼
- 利用无序数组实现优先队列并排序数组——ADT实现
- hdu 1869 六度分离
- c语言的变量
- 邻居发现(Neighbor Discovery)协议
- vs+cocos2d-x 导入第三方库 移植到android
- 字符串Hash函数对比
- Java中类名,接口名与文件名
- 叶中泪的伤感日志:现实的残酷,让我心痛欲绝
- Ubuntu 12.10 发布
- [C++]关于随机函数与概率设置