随笔分类 -  算法笔记

一些关于算法的笔记。
摘要:看到出现了可以写题解的 P10979 任务安排 2,于是写学习笔记了。 斜率优化模板题,有三倍经验,难度逐渐递增,建议从前做到后。 P2365 任务安排,P10979 任务安排 2,P5785 [SDOI2012] 任务安排。 (但是我这种做法 P10979 和 P5785 没有区别。 思路: 设 阅读全文
posted @ 2024-10-04 12:51 liruixiong0101 阅读(18) 评论(0) 推荐(1) 编辑
摘要:后缀数组挺好玩的,于是来写后缀数组学习笔记了。 一些规定: 字符串为 \(s\),字符串的长度为 \(n\),且下标从 \(1\) 标起。 \(s[l\ldots r]\) 表示字符串 \(s\) 的一个下标从 \(l\) 到 \(\min(r,n)\) 的一个字串。 后缀 \(i\) 表示 \(s 阅读全文
posted @ 2024-08-31 16:36 liruixiong0101 阅读(30) 评论(0) 推荐(0) 编辑
摘要:好好好,直接进入正题( 首先我们先要讲讲矩阵,矩阵你可以理解成 \(n\times m\) 的一个二维数组,我们如下表示它: \[\begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,m} \\ a_{2,1} & a_{2,2} & \cdots & 阅读全文
posted @ 2024-02-02 19:29 liruixiong0101 阅读(33) 评论(0) 推荐(0) 编辑
摘要:## P1 字典树是什么: 顾名思义就像一个字典一样,可以查询某单词是否出现,也可以查找同一前缀的单词的个数等等操作。 ## P2 字典树的实现: 字典树是用树来实现的(这不废话吗),如果从根节点走到一个已标记过的节点(后面我们会称它为单词节点)的一条路径就是一个单词。 我们定义一下变量(或数组)的 阅读全文
posted @ 2023-07-19 12:17 liruixiong0101 阅读(20) 评论(0) 推荐(0) 编辑
摘要:已知一个长度为 $n$ 的序列 $a$,共有 $m$ 次操作,每次操作如下: - 将某区间每一个数加上 $k$。 - 求出某区间每一个数的和。 [Luogu - P3372 【模板】线段树 1](https://www.luogu.com.cn/problem/P3372) 之前学过一个算法叫做[树 阅读全文
posted @ 2023-07-11 08:03 liruixiong0101 阅读(23) 评论(0) 推荐(2) 编辑
摘要:floyd 是一个全源最短路算法,时间复杂度 \(O(n^3)\)。 时间好慢啊,但是超好写的好吗。 floyd 的本质其实就是动态规划。设 \(dis_{i,j}\) 为 \(i\to j\) 的最短路,转移方程便是寻找一个中间点 \(k\),松弛 \(i\to j\) 的路径,将其变为 \(i\ 阅读全文
posted @ 2023-07-11 08:01 liruixiong0101 阅读(13) 评论(0) 推荐(0) 编辑
摘要:## 1.图论 - [dijkstra 算法笔记](https://www.cnblogs.com/lrx-blogs/p/Dijkstra-Algorithm-Notes.html) - [floyd 算法笔记](https://www.cnblogs.com/lrx-blogs/p/Floyd- 阅读全文
posted @ 2023-07-06 18:45 liruixiong0101 阅读(29) 评论(0) 推荐(0) 编辑
摘要:dijkstra 的本质是贪心。 首先设 $dis_i$ 为从 $s\to i$ 的最短路($s$ 为起点),贪心过程其实就是,找到所有确定了最短路的点中最短路最短的点记为 $i$,它的最短路一定是确定了的,然后将其松弛: 阅读全文
posted @ 2023-07-06 18:33 liruixiong0101 阅读(33) 评论(0) 推荐(0) 编辑
摘要:已知一个长度为 $n$ 的序列 $a$,共有 $m$ 次操作,每次操作如下: - 将某一个数加上 $x$。 - 求出某区间的和。 [Luogu - P3374 【模板】树状数组 1](https://www.luogu.com.cn/problem/P3374) 对于这个题目,有多种方式求解,例如: 阅读全文
posted @ 2023-07-03 20:22 liruixiong0101 阅读(43) 评论(7) 推荐(1) 编辑