- 2025-01-17最短路(floyd,dijkstra,spfa)
最短路[floyd]思考枚举k作为中转点来进行赋最小值,原转移为a[k][i][j]=min(a[k][i][j],a[k-1][i][k-1],a[k-1][k-1][j]);经空间压缩后为a[i][j]=min(a[i][j],a[i][k]+a[k][j]);注:为多远最短路核心代码:voidfloyd(){ for(intk=1;k<=n;k++){ for(inti=1;i<=n;i++){
- 2025-01-02Floyd算法
关于Floyd算法的优化思路,因为dist[i][j]和dist[j][i]是对称的,在遍历的时候我们可以让k从0开始,i从0到k,j从k到n。在初始化dist的时候我们首先比较两个地点的大小,然后从小的向大的方向修路。最后接收st和ed的时候也是比较大小,从小的向大的出发。#include<stdio.h>#include<s
- 2024-12-20题解:AT_arc008_3 [ARC008C] THE☆たこ焼き祭り2012
思路看到$N\leq1000$,我们立马想到Floyd,把每个人都当作点,把传递小丸子所需的时间当作边权去建边。最后直接跑一遍Floyd就好了。AC代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=1e3+10;intx[N],y[N],t[N],r[N],n;doubled
- 2024-12-16多源最短路Floyd算法
多源最短路算法-Floyd使用Floyd(弗洛伊德)算法,可以以\(O(n^3)\)的时间复杂度求出一张多源图的任意两点间的最短路径一般采用邻接矩阵的方法来存储图:intg[N][N];g[i][j]其中,g[i][j]的意义为第i个节点到第j个节点的权重我们需要对邻接矩阵进行路径初始化,将自身到自身的权重
- 2024-12-08floyd算法及注意事项
卡码网_97.小明逛公园对于floyd算法的写法有几个注意点:对边松弛的中间点的循环要放在三个for循环的最外层使用邻接矩阵存图时,每个点自己到自己的距离要初始化为0,即对角线的位置要初始化为0,其他点没有边直接相连时,要初始化为inf(inf依照题目定),如果初始化INT_MAX,在判断是否需
- 2024-11-25Floyd判圈算法
Floyd判圈算法(又称龟兔赛跑算法)作用:1.判断链表是否有环2.计算环的长度3.寻找环的起点判环:【快慢指针】定义两个指针,慢指针(slow)每次前进一步,快指针(fast)每次前进两步,这里只要fast比slow前进的快即可,但前进步长太多会增加代码运行时间,所以采用两倍于slow步长。1.若无环,fast
- 2024-11-24Floyd算法计算最短距离
importcom.google.common.collect.HashBasedTable;importcom.google.common.collect.Table;importjava.util.Arrays;publicclassApp{//正无穷publicstaticdoubleinfinity=Double.POSITIVE_INFINITY;/***计算所有节点最短路径的Floyd
- 2024-11-23洛谷P1476题解
#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<int,int>PII;constintN=110,M=210,MM=3000010;intINF=0x3f3f3f3f,mod=100003;llLNF=0x3f3f3f3f3f3f3f3f;intn,m,k,T,S,D;intg[N][N];void
- 2024-11-28【每日一题】3250. 单调数组对的数目 I
题目:给你一个长度为 n 的 正 整数数组 nums 。如果两个 非负 整数数组 (arr1,arr2) 满足以下条件,我们称它们是 单调 数组对:两个数组的长度都是 n 。arr1 是单调 非递减 的,换句话说 arr1[0]<=arr1[1]<=...<=arr1[n-1] 。arr2 是单调 非递
- 2024-11-25mongodb shard 分片集群基础概念
目录一、shard集群二、ConfigServer1、config.shards2、config.database3、config.collection4、config.chunks5、config.settings6、其他三、shard机制1、PrimaryShard2、ShardKey2.1范围分片2.2哈希分片2.3ShardKey重定义2.4版本约束2.5ShardKey
- 2024-09-08【算法笔记】多源最短路问题——Floyd算法
0.前言在图中,如果要求任意两点间的距离,则可以使用Floyd(\(\mathcalO(N^3)\)
- 2024-09-05floyd算法,三重循环的顺序问题,不要写错了
最外层的循环应该是,中间节点的变量从1~n:1for(k=1;k<=n;k++)2for(i=1;i<=n;i++)3for(j=1;j<=n;j++)4dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]); 正确代码1#include<bits/stdc++.h>2usingname
- 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-13【题解】 [NOIP 2002 普及组] 产生数
题目描述题目大意给定\(k\)个规则,规则为“使一位数可变换成另一个一位数”。求整数\(n\)根据规则经过若干次(可以为0次或多次)变化,能生成的整数个数。思路该题主要考察:Floyd传递闭包,高精度乘法。显而易见,规则具有传递性。举个例子,1可变换成2,2可变换成3,则1可变换成3。当然
- 2024-08-10算法板子:最短路问题——包含朴素Dijkstra算法、堆优化版的Dijkstra算法、SPFA算法、Floyd算法
目录1.几种算法的用途2.Dijkstra算法——求源点到其他所有点的最短路径(不能处理负边权)(1)朴素Dijkstra算法——适用于稠密图(2)堆优化版的Dijkstra算法——适用于稀疏图4.SPFA算法——求源点到其他所有点的最短路径、判断是否存在负环(可以处理负边权)(1)求有负边权的图
- 2024-08-08代码随想录算法训练营第64天 | 图论:Floyd 算法+A * 算法
97.小明逛公园https://kamacoder.com/problempage.php?pid=1155Floyd算法精讲https://www.programmercarl.com/kamacoder/0097.小明逛公园.html#floyd-算法精讲Floyd算法精讲问题总结:双向道路;路径规划;多个起点到多个终点核心思想:动态规划确定dp数组和下标含义:grid