competitive/tree/
mod.rs

1//! tree algorithms
2
3use crate::{
4    algebra::Monoid,
5    graph::UndirectedSparseGraph,
6    math::{ConvolveSteps, U64Convolve},
7    tools::{RandomSpec, Xorshift},
8};
9
10pub use self::euler_tour::*;
11#[codesnip::entry("tree_generator")]
12pub use self::generator::*;
13#[codesnip::entry("HeavyLightDecomposition")]
14pub use self::heavy_light_decomposition::HeavyLightDecomposition;
15pub use self::rerooting::ReRooting;
16pub use self::tree_center::*;
17pub use self::tree_hash::TreeHasher;
18
19#[cfg_attr(
20    nightly,
21    codesnip::entry(
22        "centroid_decomposition",
23        include("SparseGraph", "NumberTheoreticTransform")
24    )
25)]
26mod centroid_decomposition;
27mod depth;
28mod euler_tour;
29#[cfg_attr(
30    nightly,
31    codesnip::entry("tree_generator", include("SparseGraph", "random_generator"))
32)]
33mod generator;
34#[cfg_attr(
35    nightly,
36    codesnip::entry("HeavyLightDecomposition", include("algebra", "SparseGraph"))
37)]
38mod heavy_light_decomposition;
39mod rerooting;
40mod tree_center;
41#[cfg_attr(nightly, codesnip::entry("tree_centroid", include("SparseGraph")))]
42mod tree_centroid;
43mod tree_dp;
44mod tree_hash;
45mod tree_order;