<分区>
(好的,我之前的问题因为过于宽泛而被搁置,所以我在这里缩小范围。)
我想参加算法编程竞赛,很多问题都取决于对特定操作非常擅长的专用数据结构的使用——例如,Fenwick 树允许计算列表的前缀和对数时间的值。
在现代 C++(即使用 C++11 功能)中实现此类数据结构的首选方法是什么?是否可以使用 STL 算法和容器而不是编写 struct
并手动编写每个操作的代码?
我正在寻找 Fenwick 树、线段树、treap 和其他一些在 IOI 风格的比赛中经常有用的数据结构,但一般的策略已经足够了。