competitive/algorithm/
mod.rs1use 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("ImpartialGame")]
28pub use self::impartial_game::{ImpartialGame, ImpartialGameAnalyzer, ImpartialGamer};
29pub use self::other::*;
30#[codesnip::entry("PartisanGame")]
31pub use self::partisan_game::{PartisanGame, PartisanGameAnalyzer, PartisanGamer};
32#[codesnip::entry("RhoPath")]
33pub use self::rho_path::RhoPath;
34#[codesnip::entry("01_on_tree")]
35pub use self::solve_01_on_tree::solve_01_on_tree;
36#[codesnip::entry("sort")]
37pub use self::sort::SliceSortExt;
38#[codesnip::entry("SqrtDecomposition")]
39pub use self::sqrt_decomposition::{SqrtDecomposition, SqrtDecompositionBuckets};
40#[codesnip::entry("stern_brocot_tree")]
41pub use self::stern_brocot_tree::{SbtNode, SbtPath, SternBrocotTree};
42#[codesnip::entry("ternary_search")]
43pub use self::ternary_search::ternary_search;
44#[codesnip::entry("XorBasis")]
45pub use self::xorbasis::XorBasis;
46#[codesnip::entry("ZeroSumGame")]
47pub use self::zero_sum_game::{ZeroSumGame, ZeroSumGameAnalyzer, ZeroSumGamer};
48
49#[cfg_attr(
50 nightly,
51 codesnip::entry(
52 "automata_learning",
53 include("BitSet", "coding", "Matrix", "random_generator")
54 )
55)]
56mod automata_learning;
57#[cfg_attr(nightly, codesnip::entry("baby_step_giant_step", include("algebra")))]
58mod baby_step_giant_step;
59#[cfg_attr(nightly, codesnip::entry)]
60mod binary_search;
61#[cfg_attr(nightly, codesnip::entry("BitDp", include("zero_one")))]
62mod bitdp;
63#[cfg_attr(nightly, codesnip::entry("CartesianTree"))]
64mod cartesian_tree;
65#[cfg_attr(
66 nightly,
67 codesnip::entry("chromatic_number", include("MIntBase", "binary_search"))
68)]
69mod chromatic_number;
70#[cfg_attr(nightly, codesnip::entry("combinations"))]
71mod combinations;
72#[cfg_attr(nightly, codesnip::entry("ConvexHullTrick"))]
73mod convex_hull_trick;
74#[cfg_attr(nightly, codesnip::entry("esper", include("Matrix")))]
75mod esper;
76#[cfg_attr(nightly, codesnip::entry("ImpartialGame"))]
77mod impartial_game;
78#[cfg_attr(nightly, codesnip::entry)]
79mod mo_algorithm;
80mod other;
81#[cfg_attr(nightly, codesnip::entry("PartisanGame"))]
82mod partisan_game;
83#[cfg_attr(nightly, codesnip::entry("RhoPath"))]
84mod rho_path;
85#[cfg_attr(nightly, codesnip::entry("01_on_tree", include("UnionFind")))]
86mod solve_01_on_tree;
87#[cfg_attr(nightly, codesnip::entry("sort"))]
88mod sort;
89#[cfg_attr(
90 nightly,
91 codesnip::entry("SqrtDecomposition", include("algebra", "discrete_steps"))
92)]
93mod sqrt_decomposition;
94#[cfg_attr(nightly, codesnip::entry("stern_brocot_tree", include("URational")))]
95mod stern_brocot_tree;
96#[cfg_attr(nightly, codesnip::entry)]
97mod syakutori;
98#[cfg_attr(nightly, codesnip::entry)]
99mod ternary_search;
100#[cfg_attr(nightly, codesnip::entry("XorBasis"))]
101mod xorbasis;
102#[cfg_attr(nightly, codesnip::entry("ZeroSumGame"))]
103mod zero_sum_game;