haar_lib/ds/
mod.rs

1//! データ構造
2//!
3//! # セグメント木系の比較
4//!
5//! | データ構造 | 新規作成 | 区間更新 | 点更新 | 区間取得 | 点取得 |
6//! | ---- | ---- | ---- | ---- | ---- | ---- |
7//! | [`Segtree`](segtree::Segtree) | `new(n, M)` | | `assign(i, X)`, `update(i, X)` | `fold(l..r)` | |
8//! | [`DualSegtree`](dual_segtree::DualSegtree) | `new(n, M)` | `update(l..r, X)` | | | `get(i)` |
9//! | [`LazySegtree`](lazy_segtree::LazySegtree) | `new(n, A)` | `update(l..r, X)` | | `fold(l..r)` | |
10//! | [`DynamicSegtree`](dynamic_segtree::DynamicSegtree) | `new(M)` | | `assign(i, X)` | `fold(l..r)` | |
11//! | [`DynamicDualSegtree`](dynamic_dual_segtree::DynamicDualSegtree) | `new(M)` | `update(l..r, X)` | | | `get(i)` |
12//! | [`DynamicLazySegtree`](dynamic_lazy_segtree::DynamicLazySegtree) | `new(A)` | `update(l..r, X)` | | `fold(l..r)` | |
13//! | [`PersistentSegtree`](persistent_segtree::PersistentSegtree) | `new(n, M)` | | `assign(i, X)` | `fold(l..r)` | |
14//! | [`SparseTable`](sparse_table::SparseTable) | `new(s, A)` | | | `fold(l..r)` | |
15//! | [`DisjointSparseTable`](disjoint_sparse_table::DisjointSparseTable) | `new(s, S)` | | | `fold(l..r)` | |
16//! | [`FenwickTree`](fenwick::FenwickTree) | `new(n, G)` | | `update(i, X)` | `fold_to(..r)`, `fold(l..r)` | |
17//! | [`SegtreeBeats`](segtree_beats::SegtreeBeats) | `new(n)` | `chmin(l..r, X)`, `chmax(l..r, X)`, `add(l..r, X)` | | `sum(l..r, X)` | |
18//! | [`StarrySkyTree`](starry_sky_tree::StarrySkyTree) | `new(n)` | `update(l..r, X)` | | `fold(l..r)` | |
19
20// pub mod traits;
21
22pub mod partially_persistent_unionfind;
23pub mod persistent_unionfind;
24pub mod potential_unionfind;
25pub mod rollbackable_unionfind;
26pub mod unionfind;
27
28pub mod dual_segtree;
29pub mod dynamic_dual_segtree;
30pub mod dynamic_lazy_segtree;
31pub mod dynamic_segtree;
32pub mod fenwick;
33pub mod fenwick_add;
34pub mod lazy_segtree;
35pub mod lazy_segtree_coeff;
36pub mod persistent_segtree;
37pub mod segtree;
38pub mod segtree_2d;
39pub mod segtree_beats;
40pub mod segtree_bidir;
41pub mod segtree_linear_add;
42pub mod segtree_linear_add_range_sum;
43pub mod starry_sky_tree;
44pub mod starry_sky_tree_count;
45
46pub mod fenwick_on_fenwick;
47pub mod segtree_on_segtree;
48
49pub mod cumulative_sum_1d;
50pub mod cumulative_sum_2d;
51
52pub mod partially_persistent_array;
53pub mod persistent_array;
54pub mod rollbackable_vector;
55
56pub mod range_search_tree;
57
58pub mod foldable_deque;
59pub mod persistent_queue;
60
61pub mod disjoint_sparse_table;
62pub mod sparse_table;
63pub mod sparse_table_2d;
64
65pub mod interval_heap;
66pub mod lazy_skew_heap;
67pub mod skew_heap;
68
69pub mod persistent_stack;
70
71pub mod cht;
72pub mod li_chao;
73
74pub mod binary_trie;
75
76pub mod succinct_bitvec;
77pub mod wavelet_matrix;
78
79pub mod multiset;
80
81pub mod qword_tree;
82
83pub mod aho_corasick;
84pub mod palindromic_tree;
85pub mod trie;
86
87pub mod bitset;
88
89pub mod merge_sort_tree;
90
91pub mod linked_list;
92
93pub mod lazy_splay_tree;
94pub mod link_cut_tree;
95pub mod splay_tree;
96
97pub mod integer_set;
98
99pub mod usize_set;
100
101pub mod ordered_map;
102pub mod ordered_set;
103
104pub mod euler_tour_tree;
105
106pub mod static_range_count_query;
107pub mod static_range_freq_query;
108pub mod static_range_inversions_query;
109pub mod static_range_mode_query;
110
111pub mod circular_array;