zoukankan
html css js c++ java
多源最短路径 Floyd
/* Floyd.h 时间复杂库:O(N^3) 用途: 1.判断中否联通 s[a][b] != inf -> 联通 s[a][b] == inf -> 不联通 2.两点间最短路径长度 s[a][b] != inf -> 最短路径长度 = s[a][b] s[a][b] == inf -> 不联通 3.两点间的最短路径的跳数 初始化时所有路径长度设为单位长度 s[a][b] != inf -> 跳数 = s[a][b] s[a][b] == inf -> 不联通 */ #include <iostream> using namespace std; #define MAX 100 #define inf 0x3FFFFFFF class Floyd { public: int n; //记录两点间最短路径的长度 int s[MAX][MAX]; //记录最短路径 int path[MAX][MAX]; public: Floyd(int size = MAX); void clear(); void ShortestPath(); }; Floyd::Floyd(int size):n(size) { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(i = j) s[i][j] = 0; else s[i][j] = inf; path[i][j] = j; } } } Floyd::clear() { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(i = j) s[i][j] = 0; else s[i][j] = inf; path[i][j] = j; } } } void Floyd::ShortestPath() { int i,j,k; for(k = 0; k < MAX; k++) { for(i = 0; i < MAX; i++) { for(j = 0; j < MAX; j++) { if(s[i][j] > s[i][k] + s[k][j])) { s[i][j] = s[i][k] + s[k][j]; /*最短路径值*/ path[i][j] = k; /*最短路径*/ } } } } }
查看全文
相关阅读:
WSGI学习系列WSME
Murano Weekly Meeting 2015.08.11
Trace Logging Level
OpenStack Weekly Rank 2015.08.10
markdown语法测试集合
css-定位
html图像、绝对路径和相对路径,链接
html块、含样式的标签
html标题、段落、换行与字符实体
html概述和基本结构
原文地址:https://www.cnblogs.com/windmissing/p/2559881.html
最新文章
再谈布局,栅栏式自适应布局的学习和实现(calc自适应布局)
JS事件冒泡机制和兼容性添加事件
JS事件之鼠标悬浮窗(鼠标悬浮窗抖动问题的解决)
JS键盘事件之键控Div
LeetCode 576. Out of Boundary Paths
LeetCode 575. Distribute Candies
LeetCode 566. Reshape the Matrix
LeetCode 563. Binary Tree Tilt
LeetCode 561. Array Partition I
LeetCode 557. Reverse Words in a String III
热门文章
LeetCode 551. Student Attendance Record I
LeetCode 543. Diameter of Binary Tree
LeetCode 541. Reverse String II
LeetCode 538. Convert BST to Greater Tree
Murano Weekly Meeting 2015.08.25
Murano Setup Steps
WSGI学习系列Paste
OpenStack Weekly Rank 2015.08.24
Murano Weekly Meeting 2015.08.18
OpenStack Weekly Rank 2015.08.17
Copyright © 2011-2022 走看看