kyopro-lib
Library Files
Mylib/AlgebraicStructure/Group
- Dihedral group (Mylib/AlgebraicStructure/Group/dihedral.cpp)
- Sum group (Mylib/AlgebraicStructure/Group/sum.cpp)
Mylib/AlgebraicStructure/Monoid
- Affine monoid (Mylib/AlgebraicStructure/Monoid/affine.cpp)
- Array monoid (Mylib/AlgebraicStructure/Monoid/array.cpp)
- Bitand monoid (Mylib/AlgebraicStructure/Monoid/bitand.cpp)
- Bitor monoid (Mylib/AlgebraicStructure/Monoid/bitor.cpp)
- Bitxor monoid (Mylib/AlgebraicStructure/Monoid/bitxor.cpp)
- Bounded max monoid (Mylib/AlgebraicStructure/Monoid/bounded_max.cpp)
- Bounded min monoid (Mylib/AlgebraicStructure/Monoid/bounded_min.cpp)
- Dual monoid (Mylib/AlgebraicStructure/Monoid/dual.cpp)
- GCD monoid (Mylib/AlgebraicStructure/Monoid/gcd.cpp)
- LCM monoid (Mylib/AlgebraicStructure/Monoid/lcm.cpp)
- Max monoid (Mylib/AlgebraicStructure/Monoid/max.cpp)
- Max contiguous monoid (Mylib/AlgebraicStructure/Monoid/max_contiguous.cpp)
- Max partial sum monoid (Mylib/AlgebraicStructure/Monoid/max_partial_sum.cpp)
- Maybe monoid (Mylib/AlgebraicStructure/Monoid/maybe.cpp)
- Min monoid (Mylib/AlgebraicStructure/Monoid/min.cpp)
- Min-Max monoid (Mylib/AlgebraicStructure/Monoid/min_max.cpp)
- Ordering monoid (Mylib/AlgebraicStructure/Monoid/ordering.cpp)
- Pair monoid (Mylib/AlgebraicStructure/Monoid/pair.cpp)
- Product monoid (Mylib/AlgebraicStructure/Monoid/product.cpp)
- Product matrix monoid (Mylib/AlgebraicStructure/Monoid/product_matrix.cpp)
- Rolling hash monoid (Mylib/AlgebraicStructure/Monoid/rolling_hash.cpp)
- Sum monoid (Mylib/AlgebraicStructure/Monoid/sum.cpp)
- Sum matrix monoid (Mylib/AlgebraicStructure/Monoid/sum_matrix.cpp)
- Transformation monoid (Mylib/AlgebraicStructure/Monoid/transformation.cpp)
- Trivial monoid (Mylib/AlgebraicStructure/Monoid/trivial.cpp)
- Update monoid (Mylib/AlgebraicStructure/Monoid/update.cpp)
- With count (Mylib/AlgebraicStructure/Monoid/with_count.cpp)
- With max index (Mylib/AlgebraicStructure/Monoid/with_max_index.cpp)
- With min index (Mylib/AlgebraicStructure/Monoid/with_min_index.cpp)
Mylib/AlgebraicStructure/MonoidAction
- Range add / Range max (Mylib/AlgebraicStructure/MonoidAction/add_max.cpp)
- Range add / Range max with count (Mylib/AlgebraicStructure/MonoidAction/add_max_with_count.cpp)
- Range add / Range min (Mylib/AlgebraicStructure/MonoidAction/add_min.cpp)
- Range add / Range min with count (Mylib/AlgebraicStructure/MonoidAction/add_min_with_count.cpp)
- Range add / Range square sum (Mylib/AlgebraicStructure/MonoidAction/add_square_sum.cpp)
- Range add / Range sum (Mylib/AlgebraicStructure/MonoidAction/add_sum.cpp)
- Range affine / Range min-max (Mylib/AlgebraicStructure/MonoidAction/affine_min_max.cpp)
- Range affine / Range sum (Mylib/AlgebraicStructure/MonoidAction/affine_sum.cpp)
- Range multiply / Range product (Mylib/AlgebraicStructure/MonoidAction/multiply_product.cpp)
- Range multiply / Range sum (Mylib/AlgebraicStructure/MonoidAction/multiply_sum.cpp)
- Range update / Range min (Mylib/AlgebraicStructure/MonoidAction/update_min.cpp)
- Range update / Range sum (Mylib/AlgebraicStructure/MonoidAction/update_sum.cpp)
Mylib/AlgebraicStructure/Semiring
- Add-mul semiring (Mylib/AlgebraicStructure/Semiring/add_mul.cpp)
- Min-add semiring (Mylib/AlgebraicStructure/Semiring/min_add.cpp)
- Xor-and semiring (Mylib/AlgebraicStructure/Semiring/xor_and.cpp)
Mylib/Algorithm
- Cartesian tree (Mylib/Algorithm/cartesian_tree.cpp)
- 1D cumulative sum (Mylib/Algorithm/cumulative_sum_1d.cpp)
- 2D cumulative sum (Mylib/Algorithm/cumulative_sum_2d.cpp)
- Golden section search (Convex downwards) (Mylib/Algorithm/golden_section_search_downwards.cpp)
- Golden section search (Convex upwards) (Mylib/Algorithm/golden_section_search_upwards.cpp)
- 1D Imos algorithm (Mylib/Algorithm/imos_1d.cpp)
- 2D Imos algorithm (Mylib/Algorithm/imos_2d.cpp)
- 1D Imos algorithm (Linear addition) (Mylib/Algorithm/linear_imos_1d.cpp)
- Mo's algorithm (Mylib/Algorithm/mo_algorithm.cpp)
- Parallel binary search (Mylib/Algorithm/parallel_binary_search.cpp)
- Sliding window maximum (Mylib/Algorithm/sliding_maximum.cpp)
- Sliding window minimum (Mylib/Algorithm/sliding_minimum.cpp)
- Sliding window minmax (Mylib/Algorithm/sliding_minmax.cpp)
- Sqrt decomposition (Mylib/Algorithm/sqrt_decomposition.cpp)
- Ternary search (Convex downwards) (Mylib/Algorithm/ternary_search_downwards.cpp)
- Ternary search (Convex upwards) (Mylib/Algorithm/ternary_search_upwards.cpp)
Mylib/Bit
- Bit reverse (Mylib/Bit/bit_reverse.cpp)
- Bit utils (Mylib/Bit/bit_utils.cpp)
- Enumerate sets of size k (Mylib/Bit/enumerate_sets_of_size_k.cpp)
- Enumerate subsets (Ascending order) (Mylib/Bit/enumerate_subsets_asc.cpp)
- Enumerate subsets (Between) (Mylib/Bit/enumerate_subsets_between.cpp)
- Enumerate subsets (Descending order) (Mylib/Bit/enumerate_subsets_desc.cpp)
- Enumerate supersets (Ascending order) (Mylib/Bit/enumerate_supersets_asc.cpp)
- Enumerate supersets (Descending order) (Mylib/Bit/enumerate_supersets_desc.cpp)
- Gray code (Mylib/Bit/gray_code.cpp)
Mylib/Combinatorics
- Bell number (Mylib/Combinatorics/bell_number.cpp)
- Bell number (Table) (Mylib/Combinatorics/bell_number_table.cpp)
- Bernoulli number (Mylib/Combinatorics/bernoulli_number.cpp)
- Bernoulli number (FPS) (Mylib/Combinatorics/bernoulli_number_fps.cpp)
- Binomial coefficient (Mylib/Combinatorics/binomial_coefficient.cpp)
- Binomial coefficients table (Mylib/Combinatorics/binomial_coefficients_table.cpp)
- Catalan number (Mylib/Combinatorics/catalan_number.cpp)
- Factorial table (Mylib/Combinatorics/factorial_table.cpp)
- Montmort number (Mylib/Combinatorics/montmort_number.cpp)
- Partition number (Enumerate $P(n, k)$) (Mylib/Combinatorics/partition_number.cpp)
- Partition number (FPS) (Mylib/Combinatorics/partition_number_fps.cpp)
- Partition number (Enumerate $P(n, n)$) (Mylib/Combinatorics/partition_number_n.cpp)
- Semifactorial (Mylib/Combinatorics/semifactorial.cpp)
- Stirling numbers of the first kind (FFT) (Mylib/Combinatorics/stirling_number_first_fft.cpp)
- Stirling numbers of the second kind (Mylib/Combinatorics/stirling_number_second.cpp)
- Stirling numbers of the second kind (FFT) (Mylib/Combinatorics/stirling_number_second_fft.cpp)
- Stirling numbers of the second kind (Table) (Mylib/Combinatorics/stirling_number_second_table.cpp)
Mylib/Convolution
- Convolution (Index bitwise AND) (Mylib/Convolution/convolution_and.cpp)
- Convolution (Index GCD) (Mylib/Convolution/convolution_gcd.cpp)
- Convolution (Index multiplication mod P) (Mylib/Convolution/convolution_multiply.cpp)
- Convolution (Index bitwise OR) (Mylib/Convolution/convolution_or.cpp)
- Convolution (Index bitwise XOR) (Mylib/Convolution/convolution_xor.cpp)
- Fast Fourier transform (Mylib/Convolution/fast_fourier_transform.cpp)
- Fast Möbius transform (Subsets) (Mylib/Convolution/fast_mobius_transform_subset.cpp)
- Fast Möbius transform (Supersets) (Mylib/Convolution/fast_mobius_transform_superset.cpp)
- Fast Zeta transform (Subsets) (Mylib/Convolution/fast_zeta_transform_subset.cpp)
- Fast Zeta transform (Supersets) (Mylib/Convolution/fast_zeta_transform_superset.cpp)
- Number theoretic transform (Mylib/Convolution/ntt_convolution.cpp)
- Subset convolution (Mylib/Convolution/subset_convolution.cpp)
Mylib/DataStructure/Array
- Persistent array (Mylib/DataStructure/Array/persistent_array.cpp)
- Rollbackable vector (Mylib/DataStructure/Array/rollbackable_vector.cpp)
Mylib/DataStructure/BBST
- Treap (Ordered set) (Mylib/DataStructure/BBST/ordered_treap.cpp)
- Splay tree (Mylib/DataStructure/BBST/splay_tree.cpp)
- Treap (Mylib/DataStructure/BBST/treap.cpp)
Mylib/DataStructure/ConvexHullTrick
- Convex hull trick (Mylib/DataStructure/ConvexHullTrick/convex_hull_trick.cpp)
- Dynamic LiChao segment tree (Mylib/DataStructure/ConvexHullTrick/dynamic_lichao_segment_tree.cpp)
- LiChao segment tree (Mylib/DataStructure/ConvexHullTrick/lichao_segment_tree.cpp)
Mylib/DataStructure/FenwickTree
- Fenwick tree (Mylib/DataStructure/FenwickTree/fenwick_tree.cpp)
- Fenwick tree (2D) (Mylib/DataStructure/FenwickTree/fenwick_tree_2d.cpp)
- Fenwick tree (Add) (Mylib/DataStructure/FenwickTree/fenwick_tree_add.cpp)
- Fenwick tree (On Fenwick tree) (Mylib/DataStructure/FenwickTree/fenwick_tree_on_fenwick_tree.cpp)
Mylib/DataStructure/Heap
- Binary heap (Mylib/DataStructure/Heap/binary_heap.cpp)
- Binomial heap (Mylib/DataStructure/Heap/binomial_heap.cpp)
- Interval heap (Mylib/DataStructure/Heap/interval_heap.cpp)
- Lazy skew heap (Mylib/DataStructure/Heap/lazy_skew_heap.cpp)
- Leftist heap (Mylib/DataStructure/Heap/leftist_heap.cpp)
- Pairing heap (Mylib/DataStructure/Heap/pairing_heap.cpp)
- Skew heap (Mylib/DataStructure/Heap/skew_heap.cpp)
Mylib/DataStructure/LinkCutTree
Mylib/DataStructure/Queue
- Persistent queue (Mylib/DataStructure/Queue/persistent_queue.cpp)
- Sliding window aggregation (Mylib/DataStructure/Queue/sliding_window_aggregation.cpp)
Mylib/DataStructure/RangeTree
Mylib/DataStructure/SegmentTree
- Dual segment tree (Mylib/DataStructure/SegmentTree/dual_segment_tree.cpp)
- Dynamic dual segment tree (Mylib/DataStructure/SegmentTree/dynamic_dual_segment_tree.cpp)
- Dynamic lazy segment tree (Mylib/DataStructure/SegmentTree/dynamic_lazy_segment_tree.cpp)
- Dynamic segment tree (Mylib/DataStructure/SegmentTree/dynamic_segment_tree.cpp)
- Lazy segment tree (Mylib/DataStructure/SegmentTree/lazy_segment_tree.cpp)
- Lazy segment tree (Range sum, Range add, With coefficients) (Mylib/DataStructure/SegmentTree/lazy_segment_tree_with_coefficients.cpp)
- Persistent segment tree (Mylib/DataStructure/SegmentTree/persistent_segment_tree.cpp)
- Segment tree (Mylib/DataStructure/SegmentTree/segment_tree.cpp)
- Segment tree (2D) (Mylib/DataStructure/SegmentTree/segment_tree_2d.cpp)
- Segment tree beats (Mylib/DataStructure/SegmentTree/segment_tree_beats.cpp)
- Segment tree (Both foldable) (Mylib/DataStructure/SegmentTree/segment_tree_both_foldable.cpp)
- Segment tree (Add $ai + b$) (Mylib/DataStructure/SegmentTree/segment_tree_linear_add.cpp)
- Segment tree (Add $ai + b$, Range sum) (Mylib/DataStructure/SegmentTree/segment_tree_linear_add_range_sum.cpp)
- Segment tree (On segment tree) (Mylib/DataStructure/SegmentTree/segment_tree_on_segment_tree.cpp)
- Starry-sky tree (Mylib/DataStructure/SegmentTree/starry_sky_tree.cpp)
Mylib/DataStructure/Set
Mylib/DataStructure/SparseTable
- Disjoint sparse table (Mylib/DataStructure/SparseTable/disjoint_sparse_table.cpp)
- Sparse table (Mylib/DataStructure/SparseTable/sparse_table.cpp)
- Sparse table (2D) (Mylib/DataStructure/SparseTable/sparse_table_2d.cpp)
Mylib/DataStructure/Stack
Mylib/DataStructure/Trie
Mylib/DataStructure/UnionFind
- Partially persistent union-find (Mylib/DataStructure/UnionFind/partially_persistent_unionfind.cpp)
- Persistent union-find (Mylib/DataStructure/UnionFind/persistent_unionfind.cpp)
- Rollbackable union-find (Mylib/DataStructure/UnionFind/rollbackable_unionfind.cpp)
- Union-find (Mylib/DataStructure/UnionFind/unionfind.cpp)
- Weighted union-find (Mylib/DataStructure/UnionFind/weighted_unionfind.cpp)
Mylib/DataStructure/WaveletMatrix
- Succinct dictionary (Mylib/DataStructure/WaveletMatrix/succinct_dictionary.cpp)
- Wavelet matrix (Mylib/DataStructure/WaveletMatrix/wavelet_matrix.cpp)
Mylib/Debug
- Mylib/Debug/debug.cpp
- Mylib/Debug/grid_viewer.cpp
- Matrix viewer (Mylib/Debug/matrix_viewer.cpp)
- Memory dump (Mylib/Debug/memory_dump.cpp)
- Mylib/Debug/polynomial_viewer.cpp
Mylib/DynamicProgramming/SpeedupTechnique
- Kitamasa algorithm (Mylib/DynamicProgramming/SpeedupTechnique/kitamasa_algorithm.cpp)
- Monotone minima (Mylib/DynamicProgramming/SpeedupTechnique/monotone_minima.cpp)
Mylib/DynamicProgramming
- Bitonic tour (Mylib/DynamicProgramming/bitonic_tour.cpp)
- Maximum subarray problem (Mylib/DynamicProgramming/max_partial_sum.cpp)
Mylib/Geometry/Float
- Area of intersection between a circle and a polygon (Mylib/Geometry/Float/area_intersection_of_circle_and_polygon.cpp)
- Area of intersection between two circles (Mylib/Geometry/Float/area_intersection_of_circles.cpp)
- Area of polygon (Mylib/Geometry/Float/area_polygon.cpp)
- Check clockwise-counterclockwise (Mylib/Geometry/Float/ccw.cpp)
- Circumscribed circle of a triangle (Mylib/Geometry/Float/circumscribed_circle_of_triangle.cpp)
- Closest pair (Mylib/Geometry/Float/closest_pair.cpp)
- Common tangents of two circles (Mylib/Geometry/Float/common_tangent_of_circles.cpp)
- Convex cut (Mylib/Geometry/Float/convex_cut.cpp)
- Convex diameter (Mylib/Geometry/Float/convex_diameter.cpp)
- Convex hull (Mylib/Geometry/Float/convex_hull.cpp)
- Distance between a line and a point (Mylib/Geometry/Float/distance_line_point.cpp)
- Distance between a segment and a point (Mylib/Geometry/Float/distance_segment_point.cpp)
- Distance between two segments (Mylib/Geometry/Float/distance_segments.cpp)
- Floating point number with eps (Mylib/Geometry/Float/double_eps.cpp)
- Geometry template (Mylib/Geometry/Float/geometry_template.cpp)
- Inscribed circle of a triangle (Mylib/Geometry/Float/inscribed_circle_of_triangle.cpp)
- Intersection between a circle and a line (Mylib/Geometry/Float/intersect_circle_line.cpp)
- Intersection between a circle and a segment (Mylib/Geometry/Float/intersect_circle_segment.cpp)
- Intersection between two circles (Mylib/Geometry/Float/intersect_circles.cpp)
- Intersection between a line and a segment (Mylib/Geometry/Float/intersect_line_segment.cpp)
- Intersection between two segments (Mylib/Geometry/Float/intersect_segments.cpp)
- Check convex (Mylib/Geometry/Float/is_convex.cpp)
- Check if a point is in a polygon (Mylib/Geometry/Float/is_point_in_polygon.cpp)
- Manhattan segments intersections (Mylib/Geometry/Float/manhattan_segments_intersections.cpp)
- Minimum covering circle (Mylib/Geometry/Float/minimum_covering_circle.cpp)
- Orthogonal (Mylib/Geometry/Float/orthogonal.cpp)
- Parallel (Mylib/Geometry/Float/parallel.cpp)
- Projection (Mylib/Geometry/Float/projection.cpp)
- Reflection (Mylib/Geometry/Float/reflection.cpp)
- Tangent of circle (Mylib/Geometry/Float/tangent_of_circle.cpp)
Mylib/Graph/BipartiteGraph
- Check bipartite graph (Mylib/Graph/BipartiteGraph/check_bipartite_graph.cpp)
- Check bipartite graph (Using union-find) (Mylib/Graph/BipartiteGraph/construct_bipartite_graph.cpp)
Mylib/Graph/Coloring
Mylib/Graph/Cycle
- Detect cycle (Mylib/Graph/Cycle/detect_cycle.cpp)
- Directed shortest cycle (Mylib/Graph/Cycle/directed_shortest_cycle.cpp)
- Enumerate cycles in functional graph (Mylib/Graph/Cycle/enumerate_functional_cycles.cpp)
- Undirected shortest cycle (Mylib/Graph/Cycle/undirected_shortest_cycle.cpp)
Mylib/Graph/DAG
Mylib/Graph/EulerianPath
- Directed Eulerian path (Mylib/Graph/EulerianPath/directed_eulerian_path.cpp)
- Undirected Eulerian path (Mylib/Graph/EulerianPath/undirected_eulerian_path.cpp)
Mylib/Graph/Flow
- Dinic algorithm (Mylib/Graph/Flow/dinic.cpp)
- Ford-Fulkerson algorithm (Mylib/Graph/Flow/ford_fulkerson.cpp)
- Maximum flow with lower bound (Mylib/Graph/Flow/max_flow_with_lower_bound.cpp)
- Minimum cost flow (Mylib/Graph/Flow/minimum_cost_flow.cpp)
- Push-relabel (Mylib/Graph/Flow/push_relabel.cpp)
Mylib/Graph/GraphUtils
- Articulation points (Mylib/Graph/GraphUtils/articulation_points.cpp)
- Biconnected components (Mylib/Graph/GraphUtils/biconnected_components.cpp)
- Bridges (Mylib/Graph/GraphUtils/bridges.cpp)
- Decompose pseudotree (Mylib/Graph/GraphUtils/decompose_pseudotree.cpp)
- Strongly connected components (Mylib/Graph/GraphUtils/strongly_connected_components.cpp)
- Two edge connected components (Mylib/Graph/GraphUtils/two_edge_connected_components.cpp)
Mylib/Graph/Matching
- Maximum bipartite matching (Mylib/Graph/Matching/bipartite_matching.cpp)
- Hopcroft-Karp algorithm (Mylib/Graph/Matching/hopcroft_karp.cpp)
- Weighted maximum bipartite matching (Mylib/Graph/Matching/weighted_bipartite_matching.cpp)
Mylib/Graph/MinimumSpanningTree
- Borůvka algorithm (Mylib/Graph/MinimumSpanningTree/boruvka.cpp)
- Chu-Liu/Edmonds algorithm (Mylib/Graph/MinimumSpanningTree/chu_liu_edmonds.cpp)
- Kruskal algorithm (Mylib/Graph/MinimumSpanningTree/kruskal.cpp)
- Manhattan distance MST (Mylib/Graph/MinimumSpanningTree/manhattan_minimum_spanning_tree.cpp)
- Prim algorithm (Mylib/Graph/MinimumSpanningTree/prim.cpp)
Mylib/Graph/ShortestPath
- Bellman-Ford algorithm (Mylib/Graph/ShortestPath/bellman_ford.cpp)
- 0-1 BFS (Mylib/Graph/ShortestPath/bfs_0_1.cpp)
- BFS shortest path (Mylib/Graph/ShortestPath/bfs_shortest_path.cpp)
- Dial's algorithm (Mylib/Graph/ShortestPath/dial_algorithm.cpp)
- Dijkstra algorithm (Mylib/Graph/ShortestPath/dijkstra.cpp)
- SPFA (Mylib/Graph/ShortestPath/spfa.cpp)
- Warshall-Floyd algorithm (Mylib/Graph/ShortestPath/warshall_floyd.cpp)
- Warshall-Floyd algorithm (For adjacency matrix graph) (Mylib/Graph/ShortestPath/warshall_floyd_for_matrix_graph.cpp)
- Yen's algorithm (Mylib/Graph/ShortestPath/yen_algorithm.cpp)
Mylib/Graph/Template
- Basic graph (Mylib/Graph/Template/graph.cpp)
- Range edge graph (Mylib/Graph/Template/range_edge_graph.cpp)
Mylib/Graph/TopologicalSort
- Count topological sort (Mylib/Graph/TopologicalSort/count_topological_sort.cpp)
- Topological sort (Mylib/Graph/TopologicalSort/topological_sort.cpp)
- Topological sort (Lexicographically minimum) (Mylib/Graph/TopologicalSort/topological_sort_lexicographical.cpp)
Mylib/Graph/TreeUtils
- Enumerate centroids (Mylib/Graph/TreeUtils/centroid.cpp)
- Centroid decomposition (Mylib/Graph/TreeUtils/centroid_decomposition.cpp)
- Euler tour (BFS) (Mylib/Graph/TreeUtils/euler_tour_bfs.cpp)
- Euler tour (Vertex) (Mylib/Graph/TreeUtils/euler_tour_vertex.cpp)
- Decompose forest (Mylib/Graph/TreeUtils/forest.cpp)
- Heavy-light decomposition (Mylib/Graph/TreeUtils/heavy_light_decomposition.cpp)
- Lowest common ancestor (Doubling) (Mylib/Graph/TreeUtils/lca_doubling.cpp)
- Lowest common ancestor (HLD) (Mylib/Graph/TreeUtils/lca_hld.cpp)
- Rerooting DP (Mylib/Graph/TreeUtils/rerooting.cpp)
- Rooting (Mylib/Graph/TreeUtils/rooting.cpp)
- Tree diameter (Mylib/Graph/TreeUtils/tree_diameter.cpp)
- Tree distance (Mylib/Graph/TreeUtils/tree_distance.cpp)
- Tree height (Mylib/Graph/TreeUtils/tree_height.cpp)
Mylib/Graph
- Chinese postman problem (Mylib/Graph/chinese_postman_problem.cpp)
- Enumerate triangles (Mylib/Graph/enumerate_triangles.cpp)
- Linear system incidence (Mylib/Graph/lsi.cpp)
- Maximum independent set (Mylib/Graph/maximum_independent_set.cpp)
- Project selection problem (Mylib/Graph/project_selection_problem.cpp)
- Travelling salesman problem (Mylib/Graph/travelling_salesman_problem.cpp)
- 2-SAT (Mylib/Graph/two_sat.cpp)
Mylib/Grid
- Grid template (Mylib/Grid/grid.cpp)
- BFS on a grid (Mylib/Grid/grid_bfs.cpp)
- Enumerate points satisfying conditions (Mylib/Grid/grid_find.cpp)
- Convert grid to graph (Mylib/Grid/grid_to_graph.cpp)
Mylib/Heuristic
- Simulated annealing (Mylib/Heuristic/simulated_annealing.cpp)
- TSP 2-opt (Mylib/Heuristic/tsp_2_opt.cpp)
Mylib/IO
- Fast IO (Mylib/IO/fastio.cpp)
- Input tuple (Mylib/IO/input_tuple.cpp)
- Input tuple vector (Mylib/IO/input_tuple_vector.cpp)
- Input tuples (Mylib/IO/input_tuples.cpp)
- Input tuples with index (Mylib/IO/input_tuples_with_index.cpp)
- Input vector (Mylib/IO/input_vector.cpp)
- join function (Mylib/IO/join.cpp)
Mylib/LinearAlgebra
- Affine transformation matrix (2D) (Mylib/LinearAlgebra/affine_matrix.cpp)
- Determinant (Mylib/LinearAlgebra/determinant.cpp)
- Gaussian elimination (Mylib/LinearAlgebra/gaussian_elimination.cpp)
- Gaussian elimination (Mod2) (Mylib/LinearAlgebra/gaussian_elimination_binary.cpp)
- Inverse matrix (Mylib/LinearAlgebra/inverse_matrix.cpp)
- Matrix (Mylib/LinearAlgebra/matrix.cpp)
- Simultaneous linear equations (Mylib/LinearAlgebra/simultaneous_linear_equations.cpp)
- Simultaneous linear equations (Mod2) (Mylib/LinearAlgebra/simultaneous_linear_equations_binary.cpp)
- Simultaneous linear equations (Floating point number) (Mylib/LinearAlgebra/simultaneous_linear_equations_float.cpp)
- Square matrix (Mylib/LinearAlgebra/square_matrix.cpp)
- Square matrix (Const size) (Mylib/LinearAlgebra/square_matrix_const_size.cpp)
Mylib/Math
- Berlekamp-Massey (Mylib/Math/berlekamp_massey.cpp)
- Closed interval (Mylib/Math/closed_interval.cpp)
- Formal power series (Mylib/Math/formal_power_series.cpp)
- Formal power series (Sqrt) (Mylib/Math/fps_sqrt.cpp)
- Kth term of linearly recurrent sequence (Mylib/Math/linearly_recurrent_sequence.cpp)
- Multipoint evaluation (Mylib/Math/multipoint_evaluation.cpp)
- Nim product (Mylib/Math/nim_product.cpp)
- Permutation (Mylib/Math/permutation.cpp)
- Polynomial (Mylib/Math/polynomial.cpp)
- Polynomial taylor shift (Mylib/Math/polynomial_taylor_shift.cpp)
- Real solutions of quadratic equation (Mylib/Math/quadratic_equation.cpp)
- Sum of exponential times polynomial limit (\sum_{i=0}^{\infty} r^i i^d) (Mylib/Math/sum_of_exponential_times_polynomial_limit.cpp)
- Sum of floor of linear (Mylib/Math/sum_of_floor_of_linear.cpp)
- Number with infinity (Mylib/Math/unbounded.cpp)
Mylib/Misc
- Convert base (Mylib/Misc/convert_base.cpp)
- Dice (Mylib/Misc/dice.cpp)
- Input decimal (Mylib/Misc/get_decimal.cpp)
- 128-bit int (Mylib/Misc/int128.cpp)
- Merge technique (Mylib/Misc/merge_technique.cpp)
- Mylib/Misc/rho.cpp
- Roman numerals (Mylib/Misc/roman_numerals.cpp)
- Timer (Mylib/Misc/timer.cpp)
- Unzip function (Mylib/Misc/unzip.cpp)
- Xorshift (Mylib/Misc/xor_shift.cpp)
- Zip function (Mylib/Misc/zip.cpp)
Mylib/Number/Divisor
- Count divisors (Mylib/Number/Divisor/count_divisors.cpp)
- Enumerate divisors (Mylib/Number/Divisor/enumerate_divisors.cpp)
Mylib/Number/Mint
- Modint (Mylib/Number/Mint/mint.cpp)
- Modint (mod 2) (Mylib/Number/Mint/mint_2.cpp)
- Montgomery multiplication (Mylib/Number/Mint/montgomery.cpp)
- Modint (Runtime mod) (Mylib/Number/Mint/runtime_mint.cpp)
Mylib/Number/Mod
- Enumerate mod inv (Mylib/Number/Mod/enumerate_mod_inv.cpp)
- Mod inverse (Mylib/Number/Mod/mod_inv.cpp)
- Mod logarithm (Mylib/Number/Mod/mod_log.cpp)
- Mod pow (Mylib/Number/Mod/mod_pow.cpp)
- Mod sqrt (Mylib/Number/Mod/mod_sqrt.cpp)
Mylib/Number/Prime
- Count coprime (Mylib/Number/Prime/count_coprime.cpp)
- Count number of prime factor p of $a!$ (Mylib/Number/Prime/factorial_prime_factorization.cpp)
- Primality test (Trial division) (Mylib/Number/Prime/is_prime.cpp)
- Primality test (Miller-Rabin algorithm) (Mylib/Number/Prime/miller_rabin.cpp)
- Prime factorization (Pollard's rho algorithm) (Mylib/Number/Prime/pollard_rho.cpp)
- Prime factorization (Mylib/Number/Prime/prime_factorize.cpp)
- Prime factorization (Sieve) (Mylib/Number/Prime/prime_factorize_sieve.cpp)
- Primitive root (Mylib/Number/Prime/primitive_root.cpp)
- Segmented sieve (Mylib/Number/Prime/segmented_sieve.cpp)
- Sieve of Atkin (Mylib/Number/Prime/sieve_atkin.cpp)
- Sieve of Eratosthenes (Mylib/Number/Prime/sieve_eratosthenes.cpp)
Mylib/Number/Rational
- Rational number (Mylib/Number/Rational/rational.cpp)
- Stern-Brocot tree (Mylib/Number/Rational/stern_brocot_tree.cpp)
Mylib/Number/Totient
- Euler's totient function (Mylib/Number/Totient/totient.cpp)
- Sum of totient function (Mylib/Number/Totient/totient_sum.cpp)
- Euler's totient function (Table) (Mylib/Number/Totient/totient_table.cpp)
Mylib/Number
- Bézout's identity (Mylib/Number/bezout_identity.cpp)
- Binary GCD (Mylib/Number/binary_gcd.cpp)
- Chinese remainder theorem (Mylib/Number/chinese_remainder_algorithm.cpp)
- Extended Euclidean algorithm (Mylib/Number/extended_gcd.cpp)
- Floor function / Ceiling function (Mylib/Number/floor_ceil.cpp)
- Garner algorithm (Mylib/Number/garner.cpp)
- Greatest common divisor / Least common multiple (Mylib/Number/gcd_lcm.cpp)
- Check square number (Mylib/Number/is_square.cpp)
- Kth root integer (Mylib/Number/kth_root_integer.cpp)
- Linear congruence equation (Mylib/Number/linear_congruence_equation.cpp)
- Möbius function (Mylib/Number/mobius_function.cpp)
- Binary exponentiation (Mylib/Number/pow.cpp)
- Sign function (Mylib/Number/sign_function.cpp)
- Tetration (Mylib/Number/tetration.cpp)
Mylib/Parser
Mylib/String
- Aho-Corasick algorithm (Mylib/String/aho_corasick.cpp)
- ends_with (Mylib/String/ends_with.cpp)
- Knuth-Morris-Pratt algorithm (Mylib/String/knuth_morris_pratt.cpp)
- LCP(Longest Common Prefix) array (Mylib/String/lcp_array.cpp)
- Levenshtein distance / Edit distance (Mylib/String/levenshtein_distance.cpp)
- Longest common subsequence (Mylib/String/longest_common_subsequence.cpp)
- Manacher algorithm (Mylib/String/manacher.cpp)
- Palindromic tree (Mylib/String/palindromic_tree.cpp)
- Rolling hash (Mylib/String/rolling_hash.cpp)
- Rolling hash (2D) (Mylib/String/rolling_hash_2d.cpp)
- Run enumerate (Mylib/String/run_enumerate.cpp)
- split (Mylib/String/split.cpp)
- starts_with (Mylib/String/starts_with.cpp)
- Suffix array (Mylib/String/suffix_array.cpp)
- Trie (Mylib/String/trie.cpp)
- Z-algorithm (Mylib/String/z_algorithm.cpp)
Mylib/Typical
- Interval scheduling problem (Mylib/Typical/interval_scheduling.cpp)
- Interval scheduling problem (Allow no more than k intervals to overlap) (Mylib/Typical/interval_scheduling_k.cpp)
- Weighted interval scheduling problem (Mylib/Typical/interval_scheduling_weighted.cpp)
- Inversion number (Mylib/Typical/inversion_number.cpp)
- 0-1 Knapsack problem (Branch and bound) (Mylib/Typical/knapsack_branch_and_bound.cpp)
- Knapsack problem (With quantity limitations) (Mylib/Typical/knapsack_limited.cpp)
- 0-1 Knapsack problem (Small quantity) (Mylib/Typical/knapsack_small_quantity.cpp)
- 0-1 Knapsack problem (Small value) (Mylib/Typical/knapsack_small_value.cpp)
- 0-1 Knapsack problem (Small weight) (Mylib/Typical/knapsack_small_weight.cpp)
- Knapsack problem (Without quantity limitations) (Mylib/Typical/knapsack_unlimited.cpp)
- Longest increasing subsequence (Mylib/Typical/longest_increasing_subsequence.cpp)
- Largest rectangle (Mylib/Typical/max_rectangle.cpp)
- Largest rectangle in histogram (Mylib/Typical/max_rectangle_in_histogram.cpp)
- Range inversions query (Mylib/Typical/range_inversions_query.cpp)
- Range mode query (Mylib/Typical/range_mode_query.cpp)
- Range set query (Mylib/Typical/range_set_query.cpp)
- Subset sum problem (Mylib/Typical/subset_sum.cpp)
- Subset sum problem (Count) (Mylib/Typical/subset_sum_count.cpp)
- Subset sum problem (Count, FPS) (Mylib/Typical/subset_sum_count_fps.cpp)
- Subset sum problem (With quantity limitations) (Mylib/Typical/subset_sum_limited.cpp)
- Subset sum problem (Minimum) (Mylib/Typical/subset_sum_minimum.cpp)
Mylib/Utils
- Compressor (Mylib/Utils/compressor.cpp)
- Fixed point combinator (Mylib/Utils/fix_point.cpp)
- Run length encoding (Mylib/Utils/run_length_encoding.cpp)
- Sort simultaneously (Mylib/Utils/sort_simultaneously.cpp)
Mylib/Wrapper
Verification Files
test/aoj/0323
test/aoj/0390
test/aoj/0425
test/aoj/0502
test/aoj/0558
test/aoj/0575
test/aoj/1102
test/aoj/1208
test/aoj/1300
test/aoj/1308
test/aoj/1327
test/aoj/1337
test/aoj/1508
test/aoj/1549
test/aoj/1595
test/aoj/1615
test/aoj/2136
test/aoj/2171
test/aoj/2293
test/aoj/2370
test/aoj/2401
test/aoj/2426
test/aoj/2444
test/aoj/2446
test/aoj/2530
test/aoj/2559
- test/aoj/2559/main.binomial_heap.test.cpp
- test/aoj/2559/main.leftist_heap.test.cpp
- test/aoj/2559/main.pairing_heap.test.cpp
- test/aoj/2559/main.skew_heap.test.cpp
test/aoj/2667
test/aoj/2674
test/aoj/2842
test/aoj/2891
test/aoj/2903
test/aoj/2955
test/aoj/3034
test/aoj/3035
test/aoj/3058
test/aoj/3118
test/aoj/3119
test/aoj/3132
test/aoj/3134
test/aoj/3165
test/aoj/ALDS1_10_C
test/aoj/ALDS1_12_B
test/aoj/ALDS1_14_B
test/aoj/ALDS1_14_C
test/aoj/ALDS1_14_D
test/aoj/ALDS1_15_C
test/aoj/ALDS1_1_C
test/aoj/ALDS1_5_D
test/aoj/ALDS1_9_C
test/aoj/CGL_1_A
test/aoj/CGL_1_B
test/aoj/CGL_1_C
test/aoj/CGL_2_A
test/aoj/CGL_2_B
test/aoj/CGL_2_C
test/aoj/CGL_2_D
test/aoj/CGL_3_A
test/aoj/CGL_3_B
test/aoj/CGL_3_C
test/aoj/CGL_4_A
test/aoj/CGL_4_B
test/aoj/CGL_4_C
test/aoj/CGL_5_A
test/aoj/CGL_6_A
test/aoj/CGL_7_A
test/aoj/CGL_7_B
test/aoj/CGL_7_C
test/aoj/CGL_7_D
test/aoj/CGL_7_E
test/aoj/CGL_7_F
test/aoj/CGL_7_G
test/aoj/CGL_7_H
test/aoj/CGL_7_I
test/aoj/DPL_1_B
test/aoj/DPL_1_C
test/aoj/DPL_1_D
test/aoj/DPL_1_E
test/aoj/DPL_1_F
test/aoj/DPL_1_G
test/aoj/DPL_1_H
test/aoj/DPL_2_A
test/aoj/DPL_2_B
test/aoj/DPL_2_C
test/aoj/DPL_3_B
test/aoj/DPL_3_C
test/aoj/DPL_5_G
test/aoj/DPL_5_I
test/aoj/DPL_5_J
test/aoj/DSL_1_B
test/aoj/DSL_2_A
test/aoj/DSL_2_B
test/aoj/DSL_2_C
test/aoj/DSL_2_D
test/aoj/DSL_2_E
test/aoj/DSL_2_F
test/aoj/DSL_2_G
test/aoj/DSL_2_H
test/aoj/DSL_2_I
test/aoj/DSL_3_D
test/aoj/DSL_5_A
test/aoj/DSL_5_B
test/aoj/GRL_1_A
test/aoj/GRL_1_B
test/aoj/GRL_1_C
test/aoj/GRL_2_A
- test/aoj/GRL_2_A/main.boruvka.test.cpp
- test/aoj/GRL_2_A/main.kruskal.test.cpp
- test/aoj/GRL_2_A/main.prim.test.cpp
test/aoj/GRL_2_B
test/aoj/GRL_3_A
test/aoj/GRL_3_B
test/aoj/GRL_3_C
test/aoj/GRL_5_A
test/aoj/GRL_5_B
test/aoj/GRL_5_C
test/aoj/GRL_6_A
- test/aoj/GRL_6_A/main.dinic.test.cpp
- test/aoj/GRL_6_A/main.ford_fulkerson.test.cpp
- test/aoj/GRL_6_A/main.push_relabel.test.cpp
test/aoj/GRL_6_B
test/aoj/GRL_7_A
test/aoj/ITP1_3_D
test/aoj/ITP2_11_B
test/aoj/ITP2_11_C
test/aoj/ITP2_11_D
test/aoj/NTL_1_A
test/aoj/NTL_1_C
test/aoj/NTL_1_D
test/aoj/NTL_1_E
test/yosupo-judge/assignment
test/yosupo-judge/bernoulli_number
test/yosupo-judge/binomial_coefficient
test/yosupo-judge/bipartitematching
test/yosupo-judge/bitwise_and_convolution
- test/yosupo-judge/bitwise_and_convolution/main.or.test.cpp
- test/yosupo-judge/bitwise_and_convolution/main.test.cpp
test/yosupo-judge/bitwise_xor_convolution
test/yosupo-judge/cartesian_tree
test/yosupo-judge/chromatic_number
test/yosupo-judge/convolution_mod
test/yosupo-judge/convolution_mod_1000000007
test/yosupo-judge/cycle_detection
test/yosupo-judge/discrete_logarithm_mod
test/yosupo-judge/dynamic_tree_vertex_add_path_sum
test/yosupo-judge/enumerate_palindromes
test/yosupo-judge/enumerate_primes
- test/yosupo-judge/enumerate_primes/main.atkin.test.cpp
- test/yosupo-judge/enumerate_primes/main.eratosthenes.test.cpp
test/yosupo-judge/enumerate_triangles
test/yosupo-judge/exp_of_formal_power_series
- test/yosupo-judge/exp_of_formal_power_series/main.montgomery.test.cpp
- test/yosupo-judge/exp_of_formal_power_series/main.test.cpp
test/yosupo-judge/factorize
test/yosupo-judge/find_linear_recurrence
test/yosupo-judge/inv_of_formal_power_series
test/yosupo-judge/kth_root_integer
test/yosupo-judge/kth_term_of_linearly_recurrent_sequence
test/yosupo-judge/line_add_get_min
- test/yosupo-judge/line_add_get_min/main.dynamic.test.cpp
- test/yosupo-judge/line_add_get_min/main.test.cpp
test/yosupo-judge/log_of_formal_power_series
test/yosupo-judge/manhattanmst
test/yosupo-judge/matrix_det
test/yosupo-judge/matrix_product
test/yosupo-judge/maximum_independent_set
test/yosupo-judge/montmort_number_mod
test/yosupo-judge/multipoint_evaluation
test/yosupo-judge/nim_product_64
test/yosupo-judge/number_of_substrings
test/yosupo-judge/partition_function
- test/yosupo-judge/partition_function/main.fps.test.cpp
- test/yosupo-judge/partition_function/main.test.cpp
test/yosupo-judge/persistent_queue
test/yosupo-judge/persistent_unionfind
test/yosupo-judge/point_add_rectangle_sum
test/yosupo-judge/point_set_range_composite
test/yosupo-judge/polynomial_taylor_shift
test/yosupo-judge/pow_of_formal_power_series
test/yosupo-judge/queue_operate_all_composite
test/yosupo-judge/range_affine_range_sum
test/yosupo-judge/range_chmin_chmax_add_range_sum
test/yosupo-judge/range_kth_smallest
test/yosupo-judge/rectangle_sum
- test/yosupo-judge/rectangle_sum/main.fenwick_tree.test.cpp
- test/yosupo-judge/rectangle_sum/main.persistent_segment_tree.test.cpp
- test/yosupo-judge/rectangle_sum/main.segment_tree.test.cpp
test/yosupo-judge/runenumerate
test/yosupo-judge/scc
test/yosupo-judge/segment_add_get_min
- test/yosupo-judge/segment_add_get_min/main.dynamic.test.cpp
- test/yosupo-judge/segment_add_get_min/main.test.cpp
test/yosupo-judge/set_xor_min
test/yosupo-judge/sharp_p_subset_sum
test/yosupo-judge/sqrt_mod
test/yosupo-judge/sqrt_of_formal_power_series
test/yosupo-judge/static_range_inversions_query
test/yosupo-judge/static_range_sum
test/yosupo-judge/staticrmq
test/yosupo-judge/stirling_number_of_the_first_kind
test/yosupo-judge/stirling_number_of_the_second_kind
test/yosupo-judge/subset_convolution
test/yosupo-judge/suffixarray
test/yosupo-judge/sum_of_exponential_times_polynomial_limit
test/yosupo-judge/sum_of_floor_of_linear
test/yosupo-judge/sum_of_totient_function
test/yosupo-judge/system_of_linear_equations
test/yosupo-judge/tetration_mod
test/yosupo-judge/tree_diameter
test/yosupo-judge/two_edge_connected_components
test/yosupo-judge/two_sat
test/yosupo-judge/unionfind
test/yosupo-judge/vertex_add_path_sum
test/yosupo-judge/vertex_add_subtree_sum
- test/yosupo-judge/vertex_add_subtree_sum/main.euler_tour.test.cpp
- test/yosupo-judge/vertex_add_subtree_sum/main.hld.test.cpp