floyd,复杂度

void floyd(int s,int e)//start end
{for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(g[i][j]>g[i][k]+g[k][j])g[i][j]=g[i][k]+g[k][j];cout<<g[s][e]<<endl;
}

dijsktra 

struct Node{int to,dis;
};//携带边的终边,长度信息
vector<Node> g[maxn];
void add(int u,int v,int w)
{g[u].push_back({v,w});
}
int dis[maxn];//最短路数组
typedef pair<int,int> P;//将int,int型数据重命名为P
void dij(int start){memset(dis,0x3f,sizeof(dis));//初始最短路为infpriority_queue<P,vector<P>,greater<P> > q;//小根堆,堆顶是最小值dis[start]=0;//起点自己距离为0q.push(P(0,start));//起点入队,注意pair数组第一个是距离,第二个是点号while(!q.empty()){P p=q.top(); q.pop();//取出堆顶int u=p.second;if(dis[u]<p.first)        continue;//祖传优化,同一点可能多次入队,如果答案更劣可以舍弃for(int i=0;i<g[u].size();i++){//邻接表遍历int v=g[u][i].to;if(dis[v]>dis[u]+g[u][i].dis){//松弛dis[v]=dis[u]+g[u][i].dis;//成功了就更新,入队q.push(P(dis[v],v));}}}return ;
}

spfa 

bool spfa(int st)
{vector<int> dis(n,inf), vis(n, 0), cnt(n, 0);dis[st] = 0;vis[st] = 1;queue<int> q;q.emplace(st);while(!q.empty()){int u = q.front();q.pop();vis[u] = 0;for(auto [v, w] : g[u]){if(dis[v] > dis[u] + w){dis[v] = dis[u] + w;cnt[v] = cnt[u] + 1;if(cnt[v] >= n)return false;if(!vis[v]){q.emplace(v);vis[v] = 1;}}}}return true;
}

最短路算法c++(dijsktra,floyd,spfa)相关推荐

  1. 详解最短路算法模板(dijkstra+floyd+spfa)

    1.Floyd_Warshall算法 核心思路:d[i][j] = min{d[i][j], d[i][k] + d[k][j]} 从i到j有两种路径,经过k点或是不经过k点,所以我们枚举k即可求所有 ...

  2. 【最短路算法】dijkstra,SPFA和folyd

    在了解本知识点之前,首先要了解图的建立,也就是邻接表和邻接矩阵. 邻接矩阵适用于稠密图 邻接表适用于稀疏图 目录 单源最短路问题 dijkstra算法 SPFA算法 folyd算法 最小生成树 拓扑排 ...

  3. 最短路算法详解(Dijkstra/SPFA/Floyd)

    转自:http://blog.csdn.net/murmured/article/details/19281031 一.Dijkstra Dijkstra单源最短路算法,即计算从起点出发到每个点的最短 ...

  4. 最短路算法 :Bellman-ford算法 Dijkstra算法 floyd算法 SPFA算法 详解

     本文链接   :http://www.cnblogs.com/Yan-C/p/3916281.html . 在本文中因为邻接表在比赛中不如前向星好写,而且前向星效率并不低所以,本文的代码 存图只 ...

  5. 算法小讲堂之最短路算法(Floyd+bellman+SPFA+Dijkstra)

    前言 如果你对图论相关知识一点也没有,那么建议您先去了解这些知识:https://acmer.blog.csdn.net/article/details/122310835,然后就可以快乐的学习最短路 ...

  6. 最短路算法----floyd算法

    目录 1:Floyd算法的介绍 2:Floyd算法的代码展现 3:Floyd算法举例 1:Floyd算法的介绍 Floyd算法是属于最短路算法的一种,它是用来求多源最短路径,换句话来说就是求任意两个点 ...

  7. 坐在马桶上看算法:只有五行的Floyd最短路算法

    坐在马桶上看算法:只有五行的Floyd最短路算法 此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在"Communications of the ACM" ...

  8. spfa算法_10行实现最短路算法——Dijkstra

    今天是算法数据结构专题的第34篇文章,我们来继续聊聊最短路算法. 在上一篇文章当中我们讲解了bellman-ford算法和spfa算法,其中spfa算法是我个人比较常用的算法,比赛当中几乎没有用过其他 ...

  9. 图论最短路:Bellman-Ford与其优化SPFA算法的一点理解

    文章目录 前言 一.对Bellman-Ford的深入理解 1. Bellman-Ford有什么用? 2. 什么是松弛操作? 3. Bellman-Ford的k次迭代意义? 4. 一个重要定理 5. 对 ...

  10. 【啊哈!算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

最新文章

  1. POJ 2411 Mondriaan#39;s Dream (dp + 减少国家)
  2. 安徽师范大学计算机专业导师,安徽师范大学数学计算机科学学院导师介绍:罗永龙...
  3. matlab 显示多幅图像,运用matlab实现循环语句中的多幅图像显示
  4. 大学生试用期辞退之没有工钱
  5. adoquery.parameters流化
  6. 转Oracle Data Guard 理论知识3-自动裂缝检测和解决
  7. python和对象复习_python 面向对象基础和高级复习
  8. 你了解HTTPS,但你可能不了解X.509
  9. HDU1273 漫步森林【水题】
  10. spring-boot推送实时日志到前端页面显示
  11. Jave_erhui
  12. 数据库课程设计—超市零售信息管理系统(Python实现)
  13. Android 中指纹识别的使用
  14. 【和UI斗智斗勇的日子】如何实现一个类似哈罗单车APP主页打车模块的卡片式切的View
  15. 信贷、贷款行业如果利用运营商大数据精准获客?
  16. Leetcode 1024 - 视频拼接
  17. Google Glass: 未来不遥远
  18. 连接mongodb提示目标计算机拒绝,MongoDB 由于目标计算机积极拒绝,无法连接 2014-07-25T11:00:48.634+0...
  19. RabbitMQ高级之如何保证消息可靠性?
  20. 集成学习(voting)

热门文章

  1. 高新兴中标4.61亿智慧城市PPP项目
  2. java 微服务架构图_图解微服务架构演进
  3. 如何导出mysql数据库
  4. win10安装win10X虚拟机教程
  5. 区块链入门教程 。阮一峰
  6. java。用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
  7. 解决 Winfrom richtextbox不显示RTF文档 图片问题
  8. Spring Cloud Alibaba - 抽取功能的pojo类
  9. 微信小程序如何跳转视频号直播间
  10. dp 完全背包问题python