上一页 1 2 3 4 5 6 ··· 17 下一页
摘要: 在算法竞赛和高性能计算场景中,线段树(Segment Tree) 是一个必修的数据结构。它可以在 $O(\log n)$ 时间内高效地完成区间查询与修改,比如:区间求和/最大/最小值查询配合区间加法/乘法/赋值操作。 经典线段树都是递归实现,即“从顶到底地去访问”整棵树。这种方式功能强大、可拓展性高 阅读全文
posted @ 2025-07-11 22:19 Ofnoname 阅读(463) 评论(0) 推荐(1)
摘要: 如何高效地存储和查找大量字符串或前缀?比如自动补全、拼写检查、敏感词过滤等场景,都对字符串的处理速度有很高要求。哈希表虽然查找快,但并不擅长前缀匹配;普通树结构虽然灵活,但对于大量字符串的处理效率并不理想。 这时候,Trie(发音类似“try”,又称前缀树、字典树)作为一种专为字符串检索优化的数据结 阅读全文
posted @ 2025-07-03 18:53 Ofnoname 阅读(379) 评论(1) 推荐(1)
摘要: pb_ds概览:STL的强力扩展 pb_ds(Policy-Based Data Structures)是GNU C++标准库的扩展组件,诞生于对STL容器的性能与灵活性不足的解决方案。它采用策略驱动设计理念,通过组合算法实现、内存管理策略和节点更新机制,提供比STL更高效、更可定制化的数据结构。 阅读全文
posted @ 2025-07-03 12:53 Ofnoname 阅读(140) 评论(0) 推荐(0)
摘要: 上期回顾:https://www.cnblogs.com/ofnoname/p/18823922 Tarjan 算法与无向图 连接性分析是图论的核心,而Tarjan算法为我们提供了穿透复杂网络结构的通用方法。之前,我们深入探讨了Tarjan如何利用深度优先搜索(DFS) 的时间戳(dfn[])和回溯 阅读全文
posted @ 2025-06-30 20:28 Ofnoname 阅读(264) 评论(0) 推荐(1)
摘要: 图论中的连通性概念是许多算法与应用的基础。当我们研究网络结构、依赖关系或路径问题时,理解图中的连通性质至关重要。对于不同类型的图,连通性有着不同的表现形式和算法解决方案。 无向图与有向图的连通性 在无向图中,连通分量是指图中任意两个顶点之间都存在路径的最大子图。寻找无向图的连通分量相对简单,通过一次 阅读全文
posted @ 2025-05-17 12:14 Ofnoname 阅读(323) 评论(0) 推荐(2)
摘要: 在上一篇探讨线段树的文章中 https://www.cnblogs.com/ofnoname/p/18625369,我们已经掌握了如何利用线段树高效处理数组区间查询与更新问题。这种经典线段树以数组下标为构建基础,完美解决了诸如区间求和、最值查询等典型场景。 而线段树结构还有另外一个用处:想象这样一个 阅读全文
posted @ 2025-04-13 21:35 Ofnoname 阅读(365) 评论(0) 推荐(3)
摘要: 给定一棵有根树,对于任意两个节点 u 和 v,LCA (u, v) 就是这两个节点在树中的最近公共祖先节点,即距离 u 和 v 最近且同时是 u 和 v 祖先的节点。倍增法是一种高效求解 LCA 问题的算法,它通过预处理和对数级别的查询操作,能够快速地找到任意两个节点的最近公共祖先。在实际应用中,比 阅读全文
posted @ 2025-04-13 17:32 Ofnoname 阅读(193) 评论(0) 推荐(1)
摘要: 你正在开发一个交易系统,需要实时完成两种操作: 更新某个时间点的价格(单点修改) 快速计算某段时间段内的交易总量(区间查询) 当数据量较小时,我们可能会这样实现: vector<int> prices(n); // 单点更新 - O(1) prices[index] += new_value; // 阅读全文
posted @ 2025-04-12 21:41 Ofnoname 阅读(482) 评论(0) 推荐(0)
摘要: GCC(GNU Compiler Collection)为程序员提供了一系列内建位运算函数(built-in bitwise functions),这些函数直接映射为高效的硬件指令或内联实现,极大地提升了性能,尤其适用于系统编程、编解码、图像处理及性能关键场景。 __builtin_clz(x) 含 阅读全文
posted @ 2025-04-12 00:10 Ofnoname 阅读(280) 评论(0) 推荐(0)
摘要: 在线段树中,我们常常需要维护数组区间上的信息,比如区间和、区间最大值或区间最小值。通过将数组分割成若干子区间,我们实现了对区间的高效查询和更新操作。线段树之所以高效,是因为每次操作只需要处理树上的少数节点,查询和修改操作复杂度均为 \(O(\log n)\)。 但如果问题不再局限于数组区间,而是转移 阅读全文
posted @ 2025-04-11 22:57 Ofnoname 阅读(262) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 17 下一页