摘要:
线段树 引入 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 \(O(\log N)\) 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 线段树 线段树的基本结构与建树 过程 线段树将每个长度不为 \(1\) 的区间划分成左右两 阅读全文
该文被密码保护。 阅读全文
摘要:
并查集 引入 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。 顾名思义,并查集支持两种操作: 合并(\(\text{Union}\)):合并两个元素所属集合(合并对应的树) 查询(\(\text{Find}\)):查询某个元素所属 阅读全文
该文被密码保护。 阅读全文
摘要:
字符串哈希 定义 我们定义一个把字符串映射到整数的函数 \(f\),这个 \(f\) 称为是 \(\text{Hash}\) 函数。 我们希望这个函数 \(f\) 可以方便地帮我们判断两个字符串是否相等。 Hash 的思想 \(\text{Hash}\) 的核心思想在于,将输入映射到一个值域较小、可 阅读全文
该文被密码保护。 阅读全文
摘要:
双指针 本页面将简要介绍双指针。 引入 双指针是一种简单而又灵活的技巧和思想,单独使用可以轻松解决一些特定问题,和其他算法结合也能发挥多样的用处。 双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息。 接下来我 阅读全文