c++ - C++ 中线段树的 STL

标签 c++ algorithm stl segment-tree

线段树有没有STL?

在竞争性编程中,为 seg 树编写代码需要花费大量时间。我想知道是否有任何 STL 可以节省很多时间。

最佳答案

我假设“线段树”实际上是指范围树,它在编程竞赛中比用于存储一组间隔的更专业的结构更常用。

C++ 标准库中没有这样的容器,但如果您正在参加 ACM 竞赛,您可以考虑自己编写并根据需要简单地复制它。你可以找到我自己的实现 here (包括惰性传播),但如果您在网上搜索,您可能会找到更通用的版本。

在需要和而不是最小值或最大值的应用中,可以使用二叉索引树代替线段树,这样速度更快,占用内存更少,也更容易编码(大约十几行或更少)。

关于c++ - C++ 中线段树的 STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535296/

相关文章:

c++ - 如何对无符号长数使用宏?

c++ - SDL+OpenGL 程序没有出现在 linux 上

java - 一种基于输入数字的多选算法

c++ - 获取 std::set 子集的有效方法

c++ - 为什么 std::tr1::unordered_map 比本地 HashMap 慢?

c++ - 在 Qt 中无需分配即可将(很多!)数字转换为字符串的正确方法

algorithm - 贪心算法和启发式算法有什么区别?

algorithm - 沿已知方向移动 GPS 位置一定距离(以米为单位)

C++:搜索 std::set 指向类的指针

c++ - 重新哈希由列表 vector 组成的哈希表 C++