competitive/algorithm/
mod.rs

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