当前位置: 首页 > news >正文

营销类网站有哪些设计主题和设计理念

营销类网站有哪些,设计主题和设计理念,17网站一起做网店优势与劣势,浙江住房和建设网站图论——Floyd算法 文章目录图论——Floyd算法算法解释初始化核心代码经典题目代码图论的这几个算法都是用来求最短路的,回顾一下之前的两个算法:Djikstra是用来求单源无负权值最短路的,Bellman-Ford是用来求有负权值的最短路。而本算法是求全…

图论——Floyd算法

文章目录

  • 图论——Floyd算法
  • 算法解释
    • 初始化
    • 核心代码
  • 经典题目
    • 代码

图论的这几个算法都是用来求最短路的,回顾一下之前的两个算法:Djikstra是用来求单源无负权值最短路的,Bellman-Ford是用来求有负权值的最短路。而本算法是求全源最短路的,也可以处理有负权值的情况。那么问题就来了,既然能求全源最短路还能处理负权值为啥还要学前两个。既然功能强大肯定是要付出一定代价的:时间复杂度很高。Djikstra经过优化可以达到 O(mlog(n))O(mlog(n))O(mlog(n)),Bellman-Ford经过优化之后(也就是SPFA)的时间复杂度不是特别固定,但是较坏的情况也不过是 O(VE)(其中 k 是小常数,E 为图的边数)。而本算法时间复杂度来到了 O(n3)O(n^{3} )O(n3)!下面用这张表来对比一下:

核心要素Dijkstra 算法SPFA 算法(Shortest Path Faster Algorithm)Floyd 算法
核心作用单源最短路径(从一个起点到所有其他顶点)单源最短路径(Bellman-Ford 算法优化)多源最短路径(所有顶点对之间的最短路径)
适用图类型边权非负的有向 / 无向图边权可正可负、但无负权回路的图;可检测负权回路边权可正可负、但无负权回路的图;可检测负权回路
时间复杂度朴素版:O (V²),堆优化版:O ((V+E) logV)平均情况:O (kE)(k 为小常数);最坏情况:O (V・E)固定:O (V³)(V 为顶点数,E 为边数)
空间复杂度朴素版:O (V);堆优化版:O (V+E)(邻接表 + 堆)O (V+E)(邻接表 + 队列)原始版:O (V²);优化版(滚动数组):O (V)
关键特点1. 无法处理负权边; 2. 堆优化后稀疏图效率高1. 可处理负权边,支持负权回路检测; 2. 最坏情况退化1. 实现简单(三重循环); 2. 时间复杂度高,仅适合小规模图

算法解释

本算法的大致思路是设置一个变量kkk,外层kkk1−n1-n1n,每次只能经过此点。内层则是遍历iiijjj表示从iiijjj,用动态规划递推一遍,最后每条路经过任何一个点的路径都被遍历到了,并且在遍历过程中都取了最小值。

初始化

for(int i=1; i<=n; i++)
{cin >> u >> v > w;dp[u][v]=w;//存最开始的距离(初始化)dp[v][u]=w;
}

核心代码

fill(dp,dp+N*N,INF);
for(int k=1; k<=n; k++)for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);

经过这轮递推所有点对点的最短路径都被求出来了,到查询的时候每次O(1)O(1)O(1)查询就行了。下面是整个递推过程的图示:

在这里插入图片描述


经典题目

B3647 【模板】Floyd - 洛谷

代码

// Problem: 洛谷B3647 【模板】Floyd
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/B3647
// Memory Limit: 512 MB
// Time Limit: 1000 ms
// Submission Time: 2025-08-21 17:00:45#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second 
#define endl '\n'
const int INF = 1e18;
const int N = 1e2+5;
int dp[N][N];
int n,m;
string s;
void solve()
{cin >> n >> m;//点的个数和边的个数fill(&dp[0][0],&dp[0][0]+N*N,INF);for(int i = 0; i <= n; i++) dp[i][i] = 0; //自环为0for(int i=1; i<=m; i++){int u,v,w;cin >> u >> v >> w;dp[u][v]=min(dp[u][v],w);//存双向图,且可能有重边dp[v][u]=dp[u][v];}for(int k=1; k<=n; k++)//递推式for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);for(int i=1; i<=n; i++){for(int j=1; j<=n; j++)cout << dp[i][j] <<  ' ';cout << endl;}
}
signed main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T=1;// cin >> T;while(T--) solve();return 0;
}
http://www.dtcms.com/a/404582.html

相关文章:

  • 长沙做网站最好的公司c2c跨境电商平台有哪些?
  • 南京网站建站公司WordPress仿wp大学模板
  • 毕设代做的网站郑州建设银行网站房贷网点在哪
  • 音频网站模板网站查询ip解析
  • 桂林有帮做公司网站吗十堰市公司网站建设
  • html源码网站建设中wordpress 时间调用
  • 做网站前端有前途么?争对银行排队做一网站
  • 免费推广网站注册入口wordpress ios api
  • 江阴做网站的成都哪些公司做网站好
  • 企业名称查询网站企业网站模板下载软件
  • 智能网站建设公司排名给一个学校网站做宣传海报
  • 彭山网站建设家具网站素材
  • html论坛网站模板下载丽水做网站公司
  • ueeshop外贸建站公司网站功能简介
  • 上海建设公司网站wordpress企业站模板下载
  • 网站秒收录工具沧州网站设计师招聘
  • 建网站大公司企业网址一般怎么设置
  • 已经有域名 如何建网站社保网站哪里做转入
  • 关于自行建设门户网站的请示长春做网站大公司
  • 凡科删除建设的网站开发流程有哪些阶段
  • 高校文明建设网站seo伪原创工具
  • 美丽寮步网站建设wordpress博客数据放在哪里的
  • 大型网站建设兴田德润实惠公司域名备案
  • 厦门手机网站制作做内部网站费用
  • 机械厂网站建设方案wordpress打开越来越慢
  • 天河网站建设方案做淘宝客没网站吗
  • 为什么做旅游网站用国外网站 图片做自媒体
  • 网站设计英文网架加工费多少钱一吨
  • 重庆手机网站方案设计吉林学校网站建设
  • 哪个网站可以做线上翻译赚钱广州电子商务网站建设