段树是否有STL?
在竞争性编程中,需要花费大量时间来编写seg树。我想知道是否有任何STL,以便节省大量时间。
答案 0 :(得分:5)
我假设“段树”你实际上是指范围树,它在编程竞赛中比用于存储一组间隔的更专业的结构更常用。
C ++标准库中没有这样的容器,但是如果你在ACM竞赛中竞争,你可以考虑编写自己的容器,并根据需要简单地复制它。您可以找到我自己的实现here(包括延迟传播),但如果您在网上搜索,您可能会找到更通用的版本。
在需要总和而不是最小值或最大值的应用程序中,您可以使用二进制索引树而不是段树,它更快,使用更少的内存,并且更容易编码(大约十几行或更小)。
答案 1 :(得分:3)
C ++中没有用于段树的STL。但是,您可以查看名为Interval Container Library (ICL)的Boost库,该库应满足您的要求。