- 2024-11-15[笔记]Dijkstra算法正确性证明
最近做了一些题,感觉对算法更深刻的理解是比套板子更深层次的,在这个层次上解决问题,思路会更加清晰。比如P5687[CSP-S2019江西]网格图(题解)这道题就是网格图的最小生成树,解法就建立在普通Kruskal的基础上,当时想了挺久也没想出来,看了题解才豁然开朗。所以各算法总是要回顾回顾的~
- 2024-10-17图论day64 :最短路径算法 | SPFA(Bellman_ford的队列优化版)、城市间货物运输 I、Ⅱ、Ⅲ、Bellman_ford算法思维导图汇总
图论day64:最短路径算法|SPFA(Bellman_ford的队列优化版)、94.城市间货物运输I(卡码网)【SPFA算法+邻接表优化】、95.城市间货物运输II(判断负权回路)、96.城市间货物运输III【已知有负权回路,该如何计算】、Bellman_ford算法思维导图汇总SPFA(Bellman_ford的队列优化版)94
- 2024-09-18杂题总结 Vol.2
杂题总结Vol.2\(\def\EZ{\textcolor{#51af44}{\text{EZ}}}\EZ\)表示简单,10分钟内就能想到。\(\def\HD{\textcolor{#3173b3}{\text{HD}}}\HD\)表示中等,能独立想出\(\def\IN{\textcolor{#be2d23}{\text{IN}}}\IN\)表示困难,独立思考能想到\(50\%\)以上\(\def\AT{\textcolor
- 2024-09-17代码随想录算法训练营第六十天 | Bellman_ford之判断负权回路
目录Bellman_ford之判断负权回路思路常规拓展方法一: Bellman_ford-超时方法二:Bellman_ford2方法三:Bellman_ford队列优化Bellman_ford之判断负权回路题目链接:卡码网:95.城市间货物运输II文章讲解:代码随想录 某国为促进城市间经济交流,决定对货物运输提供
- 2024-08-30AcWing854. Floyd求最短路
注意:Floyd是求图里面任意两个点x,y之间的最短距离#include<cstring>#include<iostream>#include<algorithm>usingnamespacestd;constintN=210,INF=1e9;intn,m,Q;intd[N][N];voidfloyd(){//枚举1~k个中间节点,尝试通过这几个点中转来达到更短
- 2024-08-26树的直径
树的直径即为一棵树上的最长链。一般分为有负权图和无负权图来考虑。无负权只需做两次dfs。第一次是搜索出从任一点出发到达的最远的点P,那么这个点就一定在最长链上(请自证)。第二次搜索从点P出发到达的最远的点Q,那么最长链即为P与Q的距离。题目:B4016树的直径代码:点击查看
- 2024-03-26P2850 [USACO06DEC] Wormholes G
原题链接题解1.虫洞等价于建立负权边2.回到过去等价于存在负权环这里就相当于检测是否存在负权环,怎么判定呢?广搜,对于任意不含有负权环的,任意两点间的点数一定小于n如果存在负权环,那么搜索会一直沿着这个环进行下去,其路径的点数会大于ncode#include<bits/stdc++.h>usingna
- 2024-03-07最短路径算法
最短路径我们把边具有权重的图称为带权图,权重可以理解为两点间的距离。一个图中任意两点会有多条路径联通,最短路径就是这些路径中最短的一条。负环:环中所有边权之重和小于0的环Floyed算法算法思想如何让两个点(假设a到b)的距离变短,只能引入第三个点k,通过k进行中转即a->k->b,当
- 2024-01-22Johnson 全源最短路算法
Johnson全源最短路是一种允许带负权边的全源最短路算法。它的主要实现思路即为将原先带负权边的图转化成求一个无负权边的图的全源最短路。 我们定义一个新节点\(0\),其中\(0\)节点与其它各节点连接一条边权为\(0\)的边。令\(h_i\)为\(0\)节点到\(i\)节点的最短
- 2024-01-21C++U6-03-最短路算法2-bellmon-ford算法
学习目标贝尔曼福特算法、SPFA 可以用来复习的B站视频:1、https://www.bilibili.com/video/BV1RK4y1d7ct?p=3&vd_source=5c960e1ede940bc5cab8ed42c8bdc9372、https://www.bilibili.com/video/BV18a4y1A7gv/?spm_id_from=333.999.0.0 SPFA算法是 Bellman-Ford算法 的队
- 2023-10-19存在负权边的单源最短路径的原理和C++实现
负权图此图用朴素迪氏或堆优化迪氏都会出错,floyd可以处理。负环图 但floyd无法处理负权环,最短距离是无穷小。在环上不断循环。经过k条边的最短距离(可能有负权变)贝尔曼福特算法(bellman_ford)就是解决此问题的。原理循环k次,循环第i次时,m_vDis表示各点最多经过i-1条边的最短距离;v
- 2023-05-17用SPFA判断负权图
#include<bits/stdc++.h>usingnamespacestd;constintN=100010,M=200010,INF=0x3f3f3f3f;#definelllonglonginte[N],ne[N],h[N],w[N],d[N],cnt[N],idx=1;intn,m;boolst[N];//记录是否在队列里voidadd(inta,intb,intc){e[idx]=b,w[idx
- 2023-04-082023-04-08 无向有权图之最短路径问题
无向有权图之最短路径问题1有权图的最短路径问题什么是有权图的最短路径问题?从图中的一个点到另一个点的路径中,权值总和最小的路径就是最短路径最短路径的应用场景高德导航两个地点之间的路线,一般都是规划地最短路径互联网中对数据进行路由,一般都是选最优的路径进行数据
- 2023-03-12最长路
dijkstra不能求带负权最短路我们知道,\(dijkstra\)算法在求最短路是基于贪心思想的:每次选取一个点,这个点到起点的距离一定是最短的(其实就是,\(dijkstra\)很呆,它简单而又
- 2023-01-05算法之SPFA的前置:Bellman-Ford算法
SPFA我们都知道一个叫SPFA的算法,它是用来计算单源最短路径的,但是,众所周知它不是很稳定,容易退化。SPFA是基于什么被提出的?基于一个叫做Bellman-Ford的算法。Bellman-For
- 2022-11-16图论
图论 最短路 dijkstra时间复杂度:N^2 堆优化版的就是优化找最小距离点时间复杂度:M*logN特点:不允许存在负权边算法原理:用最短距离去更新n个点的距离(实际有效更
- 2022-08-27一句话紫书简单题
自己没办法独立想出来的会打*思维训练以及算法巩固都是很重要的。UVA11054一眼网络流。看\(a\)看着很难受,先取反,这样变成了\(a>0\)就有\(a\)的酒要给出,反之就是
- 2022-08-201034 wpy的请求 保证最短路径不变 将负权图改成正权图
链接:https://ac.nowcoder.com/acm/contest/26077/1034来源:牛客网题目描述“题目名称只是吸引你来做题的啦,其实和题目没什么卵关系:o(* ̄▽ ̄*)o