学习笔记
文章平均质量分 84
TMJYH09
这个作者很懒,什么都没留下…
展开
-
RMQ | ST 表 | 树状数组 学习笔记
前言前段时间没啥空写博客,今天汇总一下这几天学的几种数据结构。Part1. ST 表ST 表是用于求解 RMQ(区间最值) 问题的一种数据结构,使用了倍增的思想,时间复杂度 O(nlogn)\mathcal{O}(n\log n)O(nlogn)。本人认为 ST 表很类似区间 dp。有一个数组 aaa,假设现在要求静态区间最大值。I. 创建 ST 表首先定义 ST 表 sti,jst_{i,j}sti,j 表示 [i,i+2j−1][i,i+2^j-1][i,i+2j−1] 这段区间的最大原创 2022-02-16 21:20:23 · 288 阅读 · 0 评论 -
强连通分量 Tarjan 算法 学习笔记
Part1. 强连通分量强连通我们知道,在无向图中,如果点 uuu 和点 vvv 直接或间接可以相互到达对方,就说点 uuu,vvv 连通。#mermaid-svg-zsspkck5SSk03GUE .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-zsspkck5SSk03GUE .label text{f原创 2022-01-18 16:34:59 · 277 阅读 · 0 评论 -
最小生成树 学习笔记
前言最小生成树是最小权重生成树的简称。通俗来讲就是,一个有 nnn 个点的无向连通图,选出其中 n−1n-1n−1 条边使图联通,每条边都有权值,要求权值和最小。更详细的解释可参考 OI Wiki。Kruskal 算法Part1. 前置芝士并查集Part2. 思想Kruskal 算法(应该是)最好理解也最好写的最小生成树算法,核心思想是贪心。算法步骤如下:读入 mmm 条边,按边权排序。重复执行 mmm 次,每次取出最小边。判断是否在生成树内,若不在,合并集合,更新代价。有人就原创 2022-01-18 00:20:14 · 522 阅读 · 0 评论 -
最短路 学习笔记
前言最短路是图论中的一个比较重要的部分,许多问题都可以抽象为最短路来解决,常见的求最短路径算法有3种,Floyd,Dijkstra 和 SPFA(Bellman-Ford 的队列优化),下面我们逐一介绍。1. Dijkstra 算法Dijkstra 算法一般用于求图的单源最短路,本质上是一个贪心的思想。朴素 Dijkstra 时间复杂度为 O(V2)O(V^2)O(V2) ,堆优化后时间复杂度为 O(Vlog2E)O(V\log_2E)O(Vlog2E) 。代码实现如下:int Dijkst原创 2022-01-15 12:29:21 · 185 阅读 · 0 评论