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; /*最短路径*/ } } } } }
查看全文
相关阅读:
SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件+SpringBoot整合Mybatis-plus
认证 (authentication) 和授权 (authorization) 的区别
新手redis集群搭建
Nginx是什么?
分布式和集群的区别
springBoot 项目 jar/war打包 并运行
pyV8不支持dom操作,关于PyV8的支持DOM的疑问
Python爬虫:更加优雅的执行JavaScript(PyV8)
python中正则表达式 re.findall 用法
Python爬虫-破解JS加密的Cookie
原文地址:https://www.cnblogs.com/windmissing/p/2559881.html
最新文章
《电路学习第一天》 之 电路设计之前的准备
图像矩的初步探索(第十一天)
opencv查看源代码
直方图的相关知识(第九天)
霍夫变换的基本理解(第八天)
opencv边缘检测的入门剖析(第七天)
PCB的初次窥探
形态学操作+实例分析(第六天)
中值、均值、高斯、双边滤波(第五天)
python函数内容
热门文章
http协议简介
appium---启动app
appium---adb通过wifi连接手机
appium---常用的adb命令
appium---命令行启动appium
appium---AndroidSdk安装
python数据类型
如何设计高性能、高并发、高可用的系统。
BaseController 的使用
mybatis的Example的使用
Copyright © 2011-2022 走看看