随笔分类 -  学习笔记

摘要:分块 我们先引入一道题: 有一个长度为 \(N\) 的数列 \(A\),然后输入 \(Q\) 行指令操作。一种是将数列中 \(l \sim r\) 个数都加 \(d\),另一种则是询问数列中 \(l \sim r\) 个数的和。 用线段树或树状数组能在 \(\mathcal{O}((N + Q)\l 阅读全文
posted @ 2024-01-21 10:22 MrSWdAxiv 阅读(99) 评论(1) 推荐(0)
摘要:KMP模式匹配 KMP 算法能够在线性时间内判定字符串 \(A\left[1\sim N\right]\) 是否是字符串 \(B\left[ 1 \sim M\right]\) 的字串,并求出字符串 \(A\) 在字符串 \(B\) 中各次出现的位置。 详细来讲,KMP 算法分为两步。 对字符串 \ 阅读全文
posted @ 2024-01-20 16:53 MrSWdAxiv 阅读(88) 评论(0) 推荐(0)
摘要:ST 算法 ST 算法是一种运用倍增来解决 RMQ 问题也就是区间最值问题的算法。 给定一个长度为 \(N\) 的序列 \(A\),ST 算法能在 \(\mathcal O(N \log N)\) 的时间预处理后,以 \(\mathcal O(1)\) 的时间在线回答区间最值问题。 设 \(F_{i 阅读全文
posted @ 2024-01-17 21:47 MrSWdAxiv 阅读(138) 评论(2) 推荐(1)
摘要:线段树(Segment Tree) 1.建树 首先我们要明白线段树中的每个节点都代表一个区间,而对于线段树中的每个内部节点 \(\left[l,r\right]\),它的左子节点是 \(\left[l,mid\right]\),右子节点是 \(\left[mid + 1,r\right]\),其中 阅读全文
posted @ 2024-01-17 21:27 MrSWdAxiv 阅读(69) 评论(1) 推荐(0)