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; /*最短路径*/ } } } } }
查看全文
相关阅读:
致命错误 RC1121: RC : fatal error RC1121 : I/O error reading file
Windows 右键 添加 “使用CMD打开”
C2061: syntax error : identifier 'THIS_FILE'
delphi 产生随机数
使用Code::Blocks编译VC程序
Delphi中用来截取字符的函数,以及使用方法
VC6.0 最新的 SDK platform sdk xpsp2 官方下载地址
ubuntu下codeblocks起步
VC中Error spawning cl.exe错误的解决方法
Delphi如何获取时间月份
原文地址:https://www.cnblogs.com/windmissing/p/2559881.html
最新文章
Packet_TS.cs
Packet.cs
PictureForm.cs
ParseForm.cs
ReplaceForm.cs
黑客都是使用哪些方法入侵我们电脑的
90后毕业一月成千万富翁 要给父母买最好的房
前言
了解黑客经常使用哪些工具
端口复用大揭密
热门文章
关于Eclipse中Devices中有个Online项,一直想知道是什么...
onInterceptTouchEvent和onTouchEvent调用时序
端口复用技术
在android工程中,res目录下又有anim、drawable、layout、menu、raw、values和xml文件夹,分别用来保存?
(转)android WebView loadData不能解析(找不到网页)
Delphi中Sender对象的定义
自定义VC6.0的背景颜色
Eclipse联合Code::Blocks,无敌了!
VC6编译驱动的方法(含32和64位)
【转】c++各种数据类型所占存储空间大小
Copyright © 2011-2022 走看看