competitive/algorithm/
mod.rs

1//! algorithm
2
3use crate::algebra::{Magma, Monoid, Unital};
4use crate::data_structure::{UnionFindBase, union_find};
5use crate::math::Matrix;
6use crate::num::{MInt, MIntBase, One, RangeBoundsExt, URational, Unsigned, Zero};
7
8#[cfg_attr(nightly, codesnip::entry("baby_step_giant_step"))]
9pub use self::baby_step_giant_step::baby_step_giant_step;
10#[cfg_attr(nightly, codesnip::entry("binary_search"))]
11pub use self::binary_search::{Bisect, SliceBisectExt, binary_search, parallel_binary_search};
12#[codesnip::entry("BitDp")]
13pub use self::bitdp::{BitDpExt, Combinations, Subsets};
14#[codesnip::entry("chromatic_number")]
15pub use self::chromatic_number::IndependentSubSet;
16#[codesnip::entry("combinations")]
17pub use self::combinations::SliceCombinationsExt;
18#[codesnip::entry("ConvexHullTrick")]
19pub use self::convex_hull_trick::ConvexHullTrick;
20#[codesnip::entry("esper")]
21pub use self::esper::{EsperEstimator, EsperSolver};
22#[codesnip::entry("ImpartialGame")]
23pub use self::impartial_game::{ImpartialGame, ImpartialGameAnalyzer, ImpartialGamer};
24pub use self::other::*;
25#[codesnip::entry("PartisanGame")]
26pub use self::partisan_game::{PartisanGame, PartisanGameAnalyzer, PartisanGamer};
27#[codesnip::entry("RhoPath")]
28pub use self::rho_path::RhoPath;
29#[codesnip::entry("01_on_tree")]
30pub use self::solve_01_on_tree::solve_01_on_tree;
31#[codesnip::entry("sort")]
32pub use self::sort::SliceSortExt;
33#[codesnip::entry("SqrtDecomposition")]
34pub use self::sqrt_decomposition::{SqrtDecomposition, SqrtDecompositionBuckets};
35#[codesnip::entry("stern_brocot_tree")]
36pub use self::stern_brocot_tree::{SbtNode, SbtPath, SternBrocotTree};
37#[codesnip::entry("ternary_search")]
38pub use self::ternary_search::ternary_search;
39#[codesnip::entry("XorBasis")]
40pub use self::xorbasis::XorBasis;
41#[codesnip::entry("ZeroSumGame")]
42pub use self::zero_sum_game::{ZeroSumGame, ZeroSumGameAnalyzer, ZeroSumGamer};
43
44#[cfg_attr(nightly, codesnip::entry("baby_step_giant_step", include("algebra")))]
45mod baby_step_giant_step;
46#[cfg_attr(nightly, codesnip::entry)]
47mod binary_search;
48#[cfg_attr(nightly, codesnip::entry("BitDp", include("zero_one")))]
49mod bitdp;
50#[cfg_attr(
51    nightly,
52    codesnip::entry("chromatic_number", include("MIntBase", "binary_search"))
53)]
54mod chromatic_number;
55#[cfg_attr(nightly, codesnip::entry("combinations"))]
56mod combinations;
57#[cfg_attr(nightly, codesnip::entry("ConvexHullTrick"))]
58mod convex_hull_trick;
59#[cfg_attr(nightly, codesnip::entry("esper", include("Matrix")))]
60mod esper;
61#[cfg_attr(nightly, codesnip::entry("ImpartialGame"))]
62mod impartial_game;
63#[cfg_attr(nightly, codesnip::entry)]
64mod mo_algorithm;
65mod other;
66#[cfg_attr(nightly, codesnip::entry("PartisanGame"))]
67mod partisan_game;
68#[cfg_attr(nightly, codesnip::entry("RhoPath"))]
69mod rho_path;
70#[cfg_attr(nightly, codesnip::entry("01_on_tree", include("UnionFind")))]
71mod solve_01_on_tree;
72#[cfg_attr(nightly, codesnip::entry("sort"))]
73mod sort;
74#[cfg_attr(
75    nightly,
76    codesnip::entry("SqrtDecomposition", include("algebra", "discrete_steps"))
77)]
78mod sqrt_decomposition;
79#[cfg_attr(nightly, codesnip::entry("stern_brocot_tree", include("URational")))]
80mod stern_brocot_tree;
81#[cfg_attr(nightly, codesnip::entry)]
82mod syakutori;
83#[cfg_attr(nightly, codesnip::entry)]
84mod ternary_search;
85#[cfg_attr(nightly, codesnip::entry("XorBasis"))]
86mod xorbasis;
87#[cfg_attr(nightly, codesnip::entry("ZeroSumGame"))]
88mod zero_sum_game;