摘要:
操作 插入操作:从根节点开始,对于要插入的字符串中的每个字符,检查当前节点的子节点中是否存在该字符对应的边。如果存在,则沿着该边移动到下一个节点;如果不存在,则创建一个新的节点,并建立当前节点到新节点的边,边对应着当前字符。重复这个过程,直到字符串的所有字符都被处理完,最后在代表完整字符串的节点上做 阅读全文
posted @ 2025-02-27 20:58
流氓兔LMT
阅读(13)
评论(0)
推荐(0)
摘要:
流程 统计元素出现次数:遍历待排序数组,对于每个元素,在计数数组的对应位置上增加计数。 计算前缀和:对计数数组进行前缀和计算。前缀和数组中的每个元素表示小于等于该下标的元素在原数组中出现的总次数。 输出排序结果:倒序遍历待排序数组,根据计数数组中的前缀和信息,确定每个元素在排序后数组中的位置,并将其 阅读全文
posted @ 2025-02-27 20:31
流氓兔LMT
阅读(10)
评论(0)
推荐(0)
摘要:
二分图及相关概念 二分图:又称二部图,是一种特殊的图结构,其顶点集可以被划分为两个互不相交的子集和,并且图中所有的边都连接着中的顶点和中的顶点,和内部没有边。 匹配:在二分图中,匹配是指一组边的集合,其中任意两条边都没有公共顶点。 最大匹配:是指在所有可能的匹配中,边数最多的匹配。 实现步骤 初始化 阅读全文
posted @ 2025-02-27 20:18
流氓兔LMT
阅读(28)
评论(0)
推荐(0)
摘要:
用于在字符串中寻找最长回文子串的高效算法 Manacher 算法的核心思想是利用已经计算出的回文子串的信息来加速后续的计算。它通过在原始字符串的每个字符之间插入一个特殊字符(通常用#),将奇数长度和偶数长度的回文子串统一处理,使得每个回文子串都以一个字符为中心对称。 #include<bits/st 阅读全文
posted @ 2025-02-27 19:52
流氓兔LMT
阅读(16)
评论(0)
推荐(0)
摘要:
由一个键值二元组 \((k,w)\) 构成。要求 \(k\)满足二叉搜索树的性质,而\(w\) 满足堆的性质。 Treap 是笛卡尔树的一种,Treap 的 \(k\) 是随机的 始终维护右链。 #include <bits/stdc++.h> using namespace std; const 阅读全文
posted @ 2025-02-27 18:18
流氓兔LMT
阅读(14)
评论(0)
推荐(0)
摘要:
二维线段树可以维护二维表的信息,(区域和、区域最值等) 内层树和普通线段树一样 #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 5; int n, m; int s; int sum[N][N]; // 外区间查询 阅读全文
posted @ 2025-02-27 15:52
流氓兔LMT
阅读(25)
评论(0)
推荐(0)

浙公网安备 33010602011771号