Uni's Library for Competitive Programming
競技プログラミング用の C++ ライブラリです。
ツギハギ設計です。主に依存関係がやばい。修正される予定はないです。
-
action/
: Lazy Segment Tree などに乗る構造. -
adaptor/
: 主に,STL のデータ構造や入出力のラッパー. -
algebraic/
: よく使う代数構造の定義や,手軽に定義するためのヘルパー. -
convolution/
: 畳み込み. -
data_structure/
: データ構造.-
adaptor/
: Fenwick Tree を Set 風に使うためのアダプターなど.
-
-
debugger/
: デバッガー. -
geometry/
: 初等幾何. -
global/
: 主に各種の定数. -
graph/
: グラフ理論全般.木に関するものも含まれる. -
hash/
: 列や集合のハッシャー -
include/
:#include
の詰め合わせ.all.hpp
もある. -
iterable/
: 主に列やイテレータの組に対する操作. -
macro/
: マクロ.主にライブラリ内部で使うもの.internal/
のサブディレクトリにしてもいいかも. -
numeric/
: 主に,数学に関するアルゴリズムと行列. -
random/
: 乱数生成器とそのラッパー. -
sneaky/
: 未定義動作を引き起こす恐れのあるマクロなど. -
snippet/
: 便利のためのマクロや定数など.コンテスト中にも使うもの. -
structure/
: グラフ (隣接リスト),グリッド. -
template/
: コンテスト中によく使うライブラリを一括で#include
したりusing
したりするヘッダ. -
utility/
: その他の便利系ライブラリ. -
view/
: 列のビュー.基本的にはstd::ranges::views::
を踏襲している. -
**/internal/
: 主に内部実装.concepts やメタ関数も含まれる.コンテスト中に個別で#include
することは想定していない.
Expanded header (standard)
Expanded header (whole)
Library Files
action
- action/base.hpp
- action/helpers.hpp
- action/null.hpp
- action/range_add.hpp
- action/range_add_range_max.hpp
- action/range_add_range_min.hpp
- action/range_add_range_sum.hpp
- action/range_affine_range_minmax.hpp
- action/range_affine_range_sum.hpp
- action/range_bitxor.hpp
- action/range_chgcd_range_gcd.hpp
- action/range_chmax_range_max.hpp
- action/range_chmin_range_min.hpp
- action/range_chminchmax_range_minmax.hpp
- action/range_composition.hpp
- action/range_flip_range_bitxor.hpp
- action/range_gcd.hpp
- action/range_max.hpp
- action/range_min.hpp
- action/range_sequence_hash.hpp
- action/range_set.hpp
- action/range_set_range_composition.hpp
- action/range_set_range_max.hpp
- action/range_set_range_min.hpp
- action/range_set_range_sum.hpp
- action/range_sum.hpp
adaptor
- adaptor/array.hpp
- adaptor/auto_expander.hpp
- adaptor/deque_by_stack.hpp
- adaptor/io.hpp
- adaptor/map.hpp
- adaptor/multi_container.hpp
- adaptor/queue_by_stack.hpp
- adaptor/range_extractor.hpp
- adaptor/set.hpp
- adaptor/stack.hpp
- adaptor/string.hpp
- adaptor/valarray.hpp
- adaptor/vector.hpp
- adaptor/virtual_map.hpp
adaptor/gnu
adaptor/internal
algebraic
- algebraic/addition.hpp
- algebraic/affine.hpp
- algebraic/assignment.hpp
- algebraic/base.hpp
- algebraic/bit_and.hpp
- algebraic/bit_or.hpp
- algebraic/bit_xor.hpp
- algebraic/combined.hpp
- algebraic/gcd.hpp
- algebraic/helper.hpp
- algebraic/maximum.hpp
- algebraic/minimum.hpp
- algebraic/minmax.hpp
- algebraic/null.hpp
- algebraic/opposite.hpp
- algebraic/rolling_hash.hpp
algebraic/internal
convolution
convolution/internal
data_structure/adaptor
data_structure
- data_structure/bit_vector.hpp
- data_structure/disjoint_set.hpp
- data_structure/disjoint_sparse_table.hpp
- data_structure/dynamic_segment_tree.hpp
- data_structure/dynamic_sequence.hpp
- data_structure/dynamic_set.hpp
- data_structure/fenwick_tree.hpp
- data_structure/foldable_deque.hpp
- data_structure/foldable_queue.hpp
- data_structure/foldable_stack.hpp
- data_structure/kth_element.hpp
- data_structure/lazy_segment_tree.hpp
- data_structure/persistent_queue.hpp
- data_structure/persistent_stack.hpp
- data_structure/red_black_tree.hpp
- data_structure/removable_priority_queue.hpp
- data_structure/restorable_stack.hpp
- data_structure/segment_tree.hpp
- data_structure/segment_tree_rooter.hpp
- data_structure/treap.hpp
- data_structure/wavelet_matrix.hpp
data_structure/internal
- data_structure/internal/basic_tree_concept.hpp
- data_structure/internal/dynamic_tree.hpp
- data_structure/internal/node_handler.hpp
- data_structure/internal/tree_dumper.hpp
debugger
expanded
geometry
- geometry/arrow.hpp
- geometry/circle.hpp
- geometry/convex_hull.hpp
- geometry/line.hpp
- geometry/point.hpp
- geometry/polygon.hpp
- geometry/segment.hpp
- geometry/triangle.hpp
global
graph
- graph/centroid_decomposition.hpp
- graph/centroid_path_decomposition.hpp
- graph/connected_components.hpp
- graph/is_bipartite.hpp
- graph/lowest_common_ancestor.hpp
- graph/manhattan_minimum_spanning_tree.hpp
- graph/maximum_bipartite_matching.hpp
- graph/minimum_paph_cover.hpp
- graph/parse_grid.hpp
- graph/reachability_test.hpp
- graph/shortest_path.hpp
- graph/spanning_tree.hpp
- graph/topological_sort.hpp
- graph/tree_diamiter.hpp
- graph/tree_hash.hpp
graph/internal
hash
include
- include/actions.hpp
- include/adaptors.hpp
- include/algebraic.hpp
- include/all.hpp
- include/convolutions.hpp
- include/data_structures.hpp
- include/geometries.hpp
- include/graph_theory.hpp
- include/hashes.hpp
- include/iterable.hpp
- include/numeric.hpp
- include/snippets.hpp
- include/template.hpp
- include/views.hpp
internal
- internal/auto_holder.hpp
- internal/bit_field.hpp
- internal/concepts.hpp
- internal/dev_env.hpp
- internal/dummy.hpp
- internal/exception.hpp
- internal/iterator.hpp
- internal/point_reference.hpp
- internal/range_reference.hpp
- internal/ranges.hpp
- internal/resolving_rank.hpp
- internal/type_traits.hpp
- internal/types.hpp
- internal/unconstructible.hpp
- internal/uncopyable.hpp
iterable
- iterable/accumulation.hpp
- iterable/adjacent_difference.hpp
- iterable/applied.hpp
- iterable/compressed.hpp
- iterable/count_inversion.hpp
- iterable/counter.hpp
- iterable/inverse.hpp
- iterable/longest_common_subsequence.hpp
- iterable/longest_increasing_subsequence.hpp
- iterable/operation.hpp
- iterable/run_length_encoding.hpp
- iterable/z_array.hpp
iterable/internal
macro
numeric
- numeric/arithmetic.hpp
- numeric/binomial_coefficient.hpp
- numeric/bit.hpp
- numeric/boundary_seeker.hpp
- numeric/divisor_multiple_transform.hpp
- numeric/divisors.hpp
- numeric/extremum_seeker.hpp
- numeric/factorial.hpp
- numeric/fast_prime.hpp
- numeric/float.hpp
- numeric/hilbert_order.hpp
- numeric/int128.hpp
- numeric/interval_scanner.hpp
- numeric/leveler.hpp
- numeric/limits.hpp
- numeric/matrix.hpp
- numeric/numerical_sequence.hpp
- numeric/prime_counter.hpp
- numeric/prime_enumerator.hpp
- numeric/prime_sieve.hpp
- numeric/quotient_enumerator.hpp
- numeric/repeater.hpp
- numeric/stern_brocot_tree.hpp
- numeric/subset_enumerator.hpp
- numeric/subset_superset_transform.hpp
numeric/internal
- numeric/internal/divisors.hpp
- numeric/internal/factorize.hpp
- numeric/internal/mo.hpp
- numeric/internal/mod.hpp
- numeric/internal/number_base.hpp
- numeric/internal/primality_test.hpp
- numeric/internal/primitive_root.hpp
- numeric/internal/two_pointer_technique.hpp
numeric/modular
- numeric/modular/barrett_reduction.hpp
- numeric/modular/binary_reduction.hpp
- numeric/modular/builtin_reduction.hpp
- numeric/modular/modint.hpp
- numeric/modular/modint_interface.hpp
- numeric/modular/montgomery_reduction.hpp
random
sneaky
snippet
snippet/internal
structure
template
utility
utility/internal
verify/aizu-online-judge/itp1_1_a/internal
- verify/aizu-online-judge/itp1_1_a/internal/dynamic_sequence.0000.hpp
- verify/aizu-online-judge/itp1_1_a/internal/dynamic_sequence.0001.hpp
view
- view/chunk.hpp
- view/concat.hpp
- view/cyclic.hpp
- view/enumerate.hpp
- view/repeat.hpp
- view/slide.hpp
- view/stride.hpp
- view/zip.hpp
view/internal
Verification Files
verify/aizu-online-judge/0342
verify/aizu-online-judge/1508
- verify/aizu-online-judge/1508/0000.test.cpp
- verify/aizu-online-judge/1508/0001.test.cpp
- verify/aizu-online-judge/1508/0002.test.cpp
verify/aizu-online-judge/1549
- verify/aizu-online-judge/1549/0000.test.cpp
- verify/aizu-online-judge/1549/0001.test.cpp
- verify/aizu-online-judge/1549/0002.test.cpp
- verify/aizu-online-judge/1549/0003.test.cpp
verify/aizu-online-judge/2320
verify/aizu-online-judge/2426
verify/aizu-online-judge/alds1_10_c
verify/aizu-online-judge/alds1_11_d
verify/aizu-online-judge/alds1_14_b
verify/aizu-online-judge/cgl_1_a
verify/aizu-online-judge/cgl_1_b
verify/aizu-online-judge/cgl_1_c
verify/aizu-online-judge/cgl_2_a
verify/aizu-online-judge/cgl_2_b
verify/aizu-online-judge/cgl_2_c
verify/aizu-online-judge/cgl_3_a
verify/aizu-online-judge/cgl_3_b
verify/aizu-online-judge/cgl_4_a
verify/aizu-online-judge/cgl_7_a
verify/aizu-online-judge/cgl_7_b
verify/aizu-online-judge/cgl_7_c
verify/aizu-online-judge/dsl_1_a
verify/aizu-online-judge/dsl_2_a
verify/aizu-online-judge/dsl_2_d
- verify/aizu-online-judge/dsl_2_d/0000.test.cpp
- verify/aizu-online-judge/dsl_2_d/0001.test.cpp
- verify/aizu-online-judge/dsl_2_d/0002.test.cpp
- verify/aizu-online-judge/dsl_2_d/0003.test.cpp
- verify/aizu-online-judge/dsl_2_d/0004.test.cpp
- verify/aizu-online-judge/dsl_2_d/0005.test.cpp
- verify/aizu-online-judge/dsl_2_d/0006.test.cpp
- verify/aizu-online-judge/dsl_2_d/0007.test.cpp
- verify/aizu-online-judge/dsl_2_d/0008.test.cpp
- verify/aizu-online-judge/dsl_2_d/0009.test.cpp
verify/aizu-online-judge/dsl_2_e
verify/aizu-online-judge/dsl_2_f
- verify/aizu-online-judge/dsl_2_f/0000.test.cpp
- verify/aizu-online-judge/dsl_2_f/0001.test.cpp
- verify/aizu-online-judge/dsl_2_f/0002.test.cpp
- verify/aizu-online-judge/dsl_2_f/0003.test.cpp
- verify/aizu-online-judge/dsl_2_f/0004.test.cpp
- verify/aizu-online-judge/dsl_2_f/0005.test.cpp
verify/aizu-online-judge/dsl_2_g
- verify/aizu-online-judge/dsl_2_g/0000.test.cpp
- verify/aizu-online-judge/dsl_2_g/0001.test.cpp
- verify/aizu-online-judge/dsl_2_g/0002.test.cpp
- verify/aizu-online-judge/dsl_2_g/0003.test.cpp
verify/aizu-online-judge/dsl_2_h
- verify/aizu-online-judge/dsl_2_h/0000.test.cpp
- verify/aizu-online-judge/dsl_2_h/0001.test.cpp
- verify/aizu-online-judge/dsl_2_h/0002.test.cpp
- verify/aizu-online-judge/dsl_2_h/0003.test.cpp
- verify/aizu-online-judge/dsl_2_h/0004.test.cpp
verify/aizu-online-judge/dsl_2_i
verify/aizu-online-judge/grl_1_a
verify/aizu-online-judge/itp1_1_a
- verify/aizu-online-judge/itp1_1_a/0000.test.cpp
- verify/aizu-online-judge/itp1_1_a/0001.test.cpp
- verify/aizu-online-judge/itp1_1_a/0002.test.cpp
- verify/aizu-online-judge/itp1_1_a/0003.test.cpp
- verify/aizu-online-judge/itp1_1_a/0004.test.cpp
- verify/aizu-online-judge/itp1_1_a/0005.test.cpp
- verify/aizu-online-judge/itp1_1_a/0006.test.cpp
- verify/aizu-online-judge/itp1_1_a/0007.test.cpp
- verify/aizu-online-judge/itp1_1_a/0008.test.cpp
- verify/aizu-online-judge/itp1_1_a/0009.test.cpp
- verify/aizu-online-judge/itp1_1_a/0010.test.cpp
- verify/aizu-online-judge/itp1_1_a/0011.test.cpp
- verify/aizu-online-judge/itp1_1_a/0012.test.cpp
- verify/aizu-online-judge/itp1_1_a/0013.test.cpp
- verify/aizu-online-judge/itp1_1_a/0014.test.cpp
- verify/aizu-online-judge/itp1_1_a/0015.test.cpp
verify/aizu-online-judge/itp1_6_c
verify/aizu-online-judge/ntl_1_a
verify/yosupo-judge/associative_array
- verify/yosupo-judge/associative_array/0000.test.cpp
- verify/yosupo-judge/associative_array/0001.test.cpp
- verify/yosupo-judge/associative_array/0002.test.cpp
- verify/yosupo-judge/associative_array/0003.test.cpp
verify/yosupo-judge/binomial_coefficient
verify/yosupo-judge/binomial_coefficient_prime_mod
- verify/yosupo-judge/binomial_coefficient_prime_mod/0000.test.cpp
- verify/yosupo-judge/binomial_coefficient_prime_mod/0001.test.cpp
- verify/yosupo-judge/binomial_coefficient_prime_mod/0002.test.cpp
- verify/yosupo-judge/binomial_coefficient_prime_mod/0003.test.cpp
verify/yosupo-judge/bipartitematching
verify/yosupo-judge/convolution_mod
verify/yosupo-judge/convolution_mod_1000000007
verify/yosupo-judge/counting_primes
verify/yosupo-judge/deque_operate_all_composite
- verify/yosupo-judge/deque_operate_all_composite/0000.test.cpp
- verify/yosupo-judge/deque_operate_all_composite/0001.test.cpp
- verify/yosupo-judge/deque_operate_all_composite/0002.test.cpp
- verify/yosupo-judge/deque_operate_all_composite/0003.test.cpp
- verify/yosupo-judge/deque_operate_all_composite/0004.test.cpp
- verify/yosupo-judge/deque_operate_all_composite/0005.test.cpp
verify/yosupo-judge/double_ended_priority_queue
verify/yosupo-judge/dynamic_sequence_range_affine_range_sum
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0000.test.cpp
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0001.test.cpp
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0002.test.cpp
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0003.test.cpp
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0004.test.cpp
- verify/yosupo-judge/dynamic_sequence_range_affine_range_sum/0005.test.cpp
verify/yosupo-judge/enumerate_primes
verify/yosupo-judge/enumerate_quotients
verify/yosupo-judge/factorize
verify/yosupo-judge/gcd_convolution
verify/yosupo-judge/kth_root_integer
verify/yosupo-judge/lca
verify/yosupo-judge/lcm_convolution
verify/yosupo-judge/longest_increasing_subsequence
verify/yosupo-judge/manhattanmst
verify/yosupo-judge/many_aplusb_128bit
verify/yosupo-judge/matrix_det_arbitrary_mod
- verify/yosupo-judge/matrix_det_arbitrary_mod/0000.test.cpp
- verify/yosupo-judge/matrix_det_arbitrary_mod/0001.test.cpp
verify/yosupo-judge/matrix_product
- verify/yosupo-judge/matrix_product/0000.test.cpp
- verify/yosupo-judge/matrix_product/0001.test.cpp
- verify/yosupo-judge/matrix_product/0002.test.cpp
- verify/yosupo-judge/matrix_product/0003.test.cpp
- verify/yosupo-judge/matrix_product/0004.test.cpp
- verify/yosupo-judge/matrix_product/0005.test.cpp
- verify/yosupo-judge/matrix_product/0006.test.cpp
- verify/yosupo-judge/matrix_product/0007.test.cpp
- verify/yosupo-judge/matrix_product/0008.test.cpp
- verify/yosupo-judge/matrix_product/0009.test.cpp
- verify/yosupo-judge/matrix_product/0010.test.cpp
- verify/yosupo-judge/matrix_product/0011.test.cpp
- verify/yosupo-judge/matrix_product/0012.test.cpp
- verify/yosupo-judge/matrix_product/0013.test.cpp
- verify/yosupo-judge/matrix_product/0014.test.cpp
- verify/yosupo-judge/matrix_product/0015.test.cpp
verify/yosupo-judge/persistent_queue
verify/yosupo-judge/point_add_range_sum
- verify/yosupo-judge/point_add_range_sum/0000.test.cpp
- verify/yosupo-judge/point_add_range_sum/0001.test.cpp
- verify/yosupo-judge/point_add_range_sum/0002.test.cpp
- verify/yosupo-judge/point_add_range_sum/0003.test.cpp
- verify/yosupo-judge/point_add_range_sum/0004.test.cpp
verify/yosupo-judge/point_set_range_composite
- verify/yosupo-judge/point_set_range_composite/0000.test.cpp
- verify/yosupo-judge/point_set_range_composite/0001.test.cpp
- verify/yosupo-judge/point_set_range_composite/0002.test.cpp
- verify/yosupo-judge/point_set_range_composite/0003.test.cpp
verify/yosupo-judge/predecessor_problem
- verify/yosupo-judge/predecessor_problem/0000.test.cpp
- verify/yosupo-judge/predecessor_problem/0001.test.cpp
- verify/yosupo-judge/predecessor_problem/0002.test.cpp
- verify/yosupo-judge/predecessor_problem/0003.test.cpp
verify/yosupo-judge/primality_test
verify/yosupo-judge/primitive_root
verify/yosupo-judge/queue_operate_all_composite
- verify/yosupo-judge/queue_operate_all_composite/0000.test.cpp
- verify/yosupo-judge/queue_operate_all_composite/0001.test.cpp
- verify/yosupo-judge/queue_operate_all_composite/0002.test.cpp
- verify/yosupo-judge/queue_operate_all_composite/0003.test.cpp
- verify/yosupo-judge/queue_operate_all_composite/0004.test.cpp
- verify/yosupo-judge/queue_operate_all_composite/0005.test.cpp
verify/yosupo-judge/range_affine_range_sum
- verify/yosupo-judge/range_affine_range_sum/0000.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0001.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0002.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0003.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0004.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0005.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0006.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0007.test.cpp
- verify/yosupo-judge/range_affine_range_sum/0008.test.cpp
verify/yosupo-judge/range_kth_smallest
- verify/yosupo-judge/range_kth_smallest/0000.test.cpp
- verify/yosupo-judge/range_kth_smallest/0001.test.cpp
- verify/yosupo-judge/range_kth_smallest/0002.test.cpp
- verify/yosupo-judge/range_kth_smallest/0003.test.cpp
verify/yosupo-judge/range_reverse_range_sum
verify/yosupo-judge/rectangle_sum
verify/yosupo-judge/shortest_path
- verify/yosupo-judge/shortest_path/0000.test.cpp
- verify/yosupo-judge/shortest_path/0001.test.cpp
- verify/yosupo-judge/shortest_path/0002.test.cpp
verify/yosupo-judge/static_range_frequency
- verify/yosupo-judge/static_range_frequency/0000.test.cpp
- verify/yosupo-judge/static_range_frequency/0001.test.cpp
verify/yosupo-judge/static_range_sum
- verify/yosupo-judge/static_range_sum/0000.test.cpp
- verify/yosupo-judge/static_range_sum/0001.test.cpp
- verify/yosupo-judge/static_range_sum/0002.test.cpp
- verify/yosupo-judge/static_range_sum/0003.test.cpp
- verify/yosupo-judge/static_range_sum/0004.test.cpp
- verify/yosupo-judge/static_range_sum/0005.test.cpp
- verify/yosupo-judge/static_range_sum/0006.test.cpp
- verify/yosupo-judge/static_range_sum/0007.test.cpp
- verify/yosupo-judge/static_range_sum/0008.test.cpp
verify/yosupo-judge/staticrmq
- verify/yosupo-judge/staticrmq/0000.test.cpp
- verify/yosupo-judge/staticrmq/0001.test.cpp
- verify/yosupo-judge/staticrmq/0002.test.cpp
- verify/yosupo-judge/staticrmq/0003.test.cpp