hdu1869_最短路模板题
2014-01-05 14:41
260 查看
/* 大体解释:使用floyd计算每个节点与其他节点的最短距离,最短距离有大于7的说明六度分离理论不成立。 */ #include<iostream> #include<cstring> #include<fstream> #include<cstdlib> #include<algorithm> using namespace std; const int LEN=205; const int INF=0x3f3f3f3f; int vis[LEN], know[LEN][LEN], dis[LEN]; void init() { int i, j; for(i=0; i<=LEN; ++i) for(j=0; j<=LEN; ++j) i==j ? know[i][j]=0 : know[i][j]=INF; } void floyd(const int &n) { int i, j, k; for(k=0; k<n; k++) for(i=0; i<n; i++) for(j=0; j<n; j++) if(know[i][j]>know[i][k]+know[k][j]) know[i][j]=know[i][k]+know[k][j]; } int judge(const int &n) { int i, j, mark=1; for(i=0; i<n; i++) for(j=0; j<n; j++) if(know[i][j]>7) { mark=0; break; } return mark; } int main() { int i, j, n, m, a, b; while(cin>>n>>m) { //init(); //这里使用了一下0x3f的技巧 memset(know, 0x3f, sizeof(know)); for(i=0; i<m; i++) cin>>a>>b, know[a][b]=know[b][a]=1; floyd(n); if(judge(n)) cout<<"Yes\n"; else cout<<"No\n"; } return 0; }
相关文章推荐
- 最短路-dijkstra与floyd的邻接矩阵模板示例
- 【模板】K短路
- hdoj 2544 最短路(dijstra模板)
- 最短路(HDU-2544)(迪杰斯特拉模板)
- [ACM模板]单源最短路SPFA
- hdu2544 最短路 单源 模板题
- 最短路(floyed算法,模板题)
- poj 2449 k短路--模板
- 最短路模板-folyd bellman Dijkastra+路径还原+SPFA
- 个人模板 最短路SPFA
- poj2449 Remmarguts' Date --- k短路模板(SPFA+A*)
- 最短路的几种算法及其优化(模板)
- 用Astar(A*)算法 实现的迷宫最短路。代码比较规范,可作为模板
- 最短路模板。
- POJ 2447 Remmarguts' Date【k短路 SPFA+A* 模板题】
- 最短路(转)模板
- 基础最短路(模板 bellman_ford)
- 【模板】最短路
- poj 1847 最短路 dijkstra模板(vector邻接表+队列优化)
- POJ 3255 Roadblocks(次短路模板题)