Library of algorithms and data structures for competitive programming written in Rust
This library does not depend on external crates.
├── algorithm
│ ├── atkin.rs
│ ├── convex_hull_trick.rs
│ ├── cumsum.rs
│ ├── enum_divisors.rs
│ ├── eratosthenes.rs
│ ├── fast_eratosthenes.rs
│ ├── inversion_number.rs
│ ├── largest_rectangle.rs
│ ├── prime.rs
│ └── run_length.rs
├── graph
│ ├── dijkstra.rs
│ ├── dijkstra_restorepath.rs
│ ├── euler_tour.rs
│ ├── floyd_warshall.rs
│ ├── heavy_light_decomposition.rs
│ ├── lowest_common_ancestor_doubling.rs
│ ├── lowest_common_ancestor_rmq.rs
│ ├── minimun_spanning_tree_kruskal.rs
│ ├── minimun_spanning_tree_prim.rs
│ ├── tree_diamiter.rs
│ ├── util.rs
│ └── zero_one_bfs.rs
├── lib.rs
├── math
│ ├── euclid.rs
│ ├── miller_rabin.rs
│ ├── mod_pow.rs
│ └── permutation.rs
├── other
│ ├── binary_search.rs
│ ├── ternary_search.rs
│ ├── xorshift.rs
│ └── zobrist_hash.rs
├── string
│ ├── aho_corasick.rs
│ ├── manachar.rs
│ ├── rollinghash.rs
│ └── z_algorithm.rs
└── structure
├── binary_trie.rs
├── cumsum_2d.rs
├── disjoint_set_union.rs
├── disjoint_set_union_undo.rs
├── disjoint_sparse_table.rs
├── fenwick_tree.rs
├── quaternary_trie.rs
├── segment_tree.rs
├── skew_heap.rs
├── skew_heap_lazy.rs
├── sparse_table.rs
├── treap.rs
└── weighted_disjoint_set_union.rs