C ++中的段树的STL

时间:2015-02-16 05:54:42

标签: c++ algorithm stl segment-tree

段树是否有STL?

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

2 个答案:

答案 0 :(得分:5)

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

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

在需要总和而不是最小值或最大值的应用程序中,您可以使用二进制索引树而不是段树,它更快,使用更少的内存,并且更容易编码(大约十几行或更小)。

答案 1 :(得分:3)

C ++中没有用于段树的STL。但是,您可以查看名为Interval Container Library (ICL)的Boost库,该库应满足您的要求。