旧サイトから移行する 001-01 ランダムデータでテスト 001-02 Dictionaryのデバッグ出力 001-03 セパレータと数値型の列挙を引数として、結合したstringを返す 001-04 二次元配列の入出力 001-05 ソートを定義した構造体とクラス 001-06 BigIntegerクラスのサンプル 001-07 サンプルの入出力作成ツール
文字列のランレングス圧縮結果を返す ABC259-C XX to XXX longの配列のランレングス圧縮結果を返す ARC023-C タコヤ木 列挙を引数として、座標圧縮し、座圧後の値[座圧前の値]なDictを返す ABC261-F Sorting Color Balls IndStaとIndEndとUBを引数とし、IndEndがUBを超えたら、0から開始に変更し、区間のListを返す ABC340-E Mancala 2 OverLapした閉区間をマージ ABC256-D Union of Interval HashSetのUnionWithでのマージテク ABC329-F Colored Ball
PriorityQueue (根が最小) (内部でDictionary使用) ABC212-D Querying Multiset PriorityQueue (根が最大) (内部でDictionary使用) ABC249-F Ignore Operations PriorityQueue (根が最小) (内部で配列使用) ABC323-D Merge Slimes PriorityQueue (根が最小) (複数ソートキー) (内部で配列使用) 第7回PAST K 急ぎ旅 UnionFind AOJ DSL_1_A: Disjoint Set: Union Find Tree UnionFindSizeInfo ABC214-D Sum of Maximum Weights UnionFindSizeAndEdgeCntInfo ABC292-D Unicyclic Components UnionFindMinMaxInfo AOJ 0647 ストーブ UnionfFindWithAnyInfo ABC229-E Graph Destruction セグ木(RMQ) AOJ DSL_2_A: Range Minimum Query セグ木(RMaxQ) 第3回PAST L スーパーマーケット セグ木(RSQ) AOJ DSL_2_B: Range Sum Query セグ木でモノイドを指定 ABC343-F Second Largest Query フェニック木 ABC351-E Jump Distance Sum フェニック木 (法を指定可能) ABC263-E Sugoroku 3 双対セグ木(区間加算、1点取得) AOJ DSL_2_E: Range Add Query (RAQ) 双対セグ木(区間加算、1点取得) (法を指定可能) ABC341-E Alternating String 遅延セグ木 AOJ DSL_2_F: RMQ and RUQ 遅延セグ木 AOJ DSL_2_G: RSQ and RAQ 遅延セグ木 AOJ DSL_2_H: RMQ and RAQ 遅延セグ木 AOJ DSL_2_I: RSQ and RUQ 遅延セグ木(RMaxQとRAQ) Educational DP Contest W Intervals セグ木(RMQ)での拡張機能 (最小値と、最小値を持つIndを返す) (全区間のみ) ABC267-E Erasing Vertices 2 セグ木(RMQ)での拡張機能 (最小値と、最小値を持つIndを返す) (区間指定可) ARC134-B Reserve or Reverse AVL木 ABC281-E Least Elements AVL木で構造体でソート ABC267-E Erasing Vertices 2 RBST ABC134-E Sequence Decomposing ウェーブレット木 AOJ 1549 Hard Beans スパーステーブル ABC014-D 閉路 Deque AOJ DSL_3_D: Sliding Minimum Elements ImplicitTreap ARC153-B Grid Rotations kD Tree AOJ DSL_2_C: Range Search (kD Tree)
試し割りで素数判定 AOJ ALDS1_1_C: Prime Numbers 素因数分解し、指数[素数]なDictを返す ABC169-D Div Game 約数列挙 ABC112-D Partition ユークリッドの互除法 ARC110-A Redundant Redundancy エラトステネスの篩 ABC250-D 250-like Number IEnumerable<long> を引数とし、最大公約数を返す E8本(数学) 015 Greatest Common Divisor of N Integers IEnumerable<long> を引数とし、最小公倍数を返す ABC150-D Semi Common Multiple
AOJの写像12相 AOJ DPL_5_C: Balls and Boxes 3 階乗 (mod Hou)を求める ARC143-B Counting Grids nPr (mod Hou)を求める ARC143-B Counting Grids nCr (mod Hou)を求める ARC039-B 高橋幼稚園 nCr をnの最大値指定で事前準備し、高速に求める ABC151-E Max-Min Sums nHr を求める(法も指定可) C++のnext_permutation、prev_permutation C++のnext_permutation、prev_permutation Rubyの順列、組合せ、重複順列、重複組合せ Rubyの場合の数を求めるメソッド 集合を指定した分割数に分割 集合を指定した分割数に分割 列挙、取得数下限、取得数上限を引数とし、配列の列挙を返す 競技プログラミングの鉄則 A72 Tile Painting 包除原理その1 E8本(数学) 068 Number of Multiples 2 包除原理その2 ABC246-F typewriter
ModPow(繰返し2乗法) ARC039-B 高橋幼稚園 フェルマーの小定理で逆元を求める ARC039-B 高橋幼稚園 フェルマーの小定理で逆元を求める(キャッシュ付き) ABC280-E Critical Hit 合同方程式、A*X ≡ B (mod M) を解く ABC186-E Throne 中国剰余定理 ABC193-E Oversleeping
004-01 DFSのテンプレート 004-02 BFSのテンプレート 再帰でDFSその1(訪問済ノードをグローバルに持つ) ABC293-C Make Takahashi Happy 再帰でDFSその2(訪問済ノードをグローバルに持つ) ABC284-E Count Simple Paths 隣接リストのデータ作成(枝にコスト有り) 第8回PAST H 最短経路 隣接リストのデータ作成(枝にコスト無し) ABC199-D RGB Coloring 2 無向グラフの連結成分分解その1(代表ノード[ノード]なDict) ALDS1_11_D: Connected Components 無向グラフの連結成分分解その2(ノードList[代表ノード]なDict) ABC199-D RGB Coloring 2 有向グラフで強連結成分分解 ABC245-F Endless Walk トポロジカルソート(DFS) Educational DP G Longest Path トポロジカルソート(BFSで小さいノード番号を優先) ABC223-D Restricted Permutation 有向グラフでの閉路判定 第7回PAST J 終わりなき旅 無向グラフでの閉路判定 ABC231-D Neighbors ファンクショナルグラフでの閉路数を返す ARC114-B Special Subsets ダイクストラ法(コストが単数)その1 ABC340-D Super Takahashi Bros. ダイクストラ法(コストが単数)その2 競技プログラミングの鉄則 A64 Shortest Path 2 ダイクストラ法(コストが単数)その3 ABC325-E Our clients, please wait a moment ダイクストラ法(複数ソートキー) 競技プログラミングの鉄則 A73 Marathon Route ダイクストラ法(逆辺)その1 ABC342-E Last Train ワーシャルフロイド法(コストが単数) 典型アルゴリズム問題集 E 全点対最短経路問題 ワーシャルフロイド法(コストを構造体で管理) ABC286-E Souvenir ワーシャルフロイド法(頂点を倍加) 第17回PAST L 割引券 ベルマンフォード法 GRL_1_B: Single Source Shortest Path (Negative Edges) クラスカル法 典型アルゴリズム問題集 F 最小全域木問題 プリム法 ALDS1_12_A: Minimum Spanning Tree 再帰でオイラーツアー(訪問と帰りを表示) ABC213-D Takahashi Tour Stackでオイラーツアー(訪問と最後の帰りを表示) ABC202-E Count Descendants ダイクストラ木 ABC252-E Road Reduction DFS木 ABC251-F Two Spanning Trees BFS木 ABC251-F Two Spanning Trees 木のLCAを求める ABC014-D 閉路 木の直径を求める GRL_5_A: Diameter of a Tree 無向グラフの橋の列挙を返す ABC266-F Well-defined Path Queries on a Namori
最大流でエドモンズ・カープ GRL_6_A: Maximum Flow 二部マッチングでエドモンズ・カープ GRL_7_A: Bipartite Matching 二部マッチングでフォード・ファルカーソン AOJ 1163 カードゲーム 最小費用流でベルマンフォード法 GRL_6_B: Minimum Cost Flow
ABC091-D Two Sequences
構造体のハッシュ値を状態に持つDP ABC322-E Product Development 桁DPその1 Educational DP Contest S Digit Sum 桁DPその2 ABC336-E Digit Sum Divisible 桁DPその3 ARC173-A Neq Number 2進数での桁DPその1 ARC129-A Smaller XOR 区間DPその1 AOJ 1611 ダルマ落とし 区間DPその2 第5回PAST L T消し 区間DPその3 Educational DP Contest N Slimes 区間DPその4 競技プログラミングの鉄則 A21 Block Game 期待値DPその1 ABC184-D increment of coins 期待値DPその2 Educational DP Contest J Sushi 期待値DPその3 TDP J ボール 期待値DPその4 PAST5回 K 的あて 期待値DPその5 ABC280-E Critical Hit 期待値DPその6 ABC350-E Toward 0 部分列DPその1 AOJ 2895 回文部分列 (Palindromic Subsequences) 部分列DPその2 ARC081-E Don't Be a Subsequence 部分列DPその3 TDP G 辞書順 木DPその1 競技プログラミングの鉄則 B65 Road to Promotion Hard 木DPその2 ABC239-E Subtree K-th Max 全方位木DPその1 AOJ 1595 Traffic Tree 全方位木DPその2 Educational DP Contest V Subtree 全方位木DPその3 ABC160-F Distributing Integers 全方位木DPその4 ABC220-F Distance Sums 2 円環で、先頭と直前を状態に持つDPその1 ABC229-F Make Bipartite 円環で、先頭と直前を状態に持つDPその2 ABC251-E Tahakashi and Animals いもす法で配るDPその1 Educational DP Contest M Candies いもす法で配るDPその2 ABC179-D Leaping Tak いもす法で配るDPその3 ABC222-D Between Two Arrays いもす法で配るDPその4 ABC249-E RLE いもす法で配るDPその5 ABC253-E Distance Sequence 連結DPその1 ABC248-F Keep Connect キューを使って、遅延更新するDP CodeQUEEN 2024 決勝 C Attraction on Rainy Day
DP復元その1 競技プログラミングの鉄則 A17 Dungeon 2 DP復元その2 典型90問 056 Lucky Bag(★5) DP復元その3 第17回PAST K 正しいチェックディジット
TSP問題その1 競技プログラミングの鉄則 B23 Traveling Salesman Problem TSP問題その2 ABC180-E Traveling Salesman among Aerial Cities TSP問題その3 ABC274-E Booster
列挙を引数として、狭義単調増加なLISの長さを返す ARC121-B Dividing Subsequence 広義単調増加なLISを求める ABC369-F Gather Coins
二分法でLowerBound(配列) ARC121-B RGB Matching 二分法でUpperBound(配列) TDP G 辞書順 二分法でLower_Max(配列) TDP G 辞書順 二分法でLowerOrEqual_Max(配列) ABC172-C Tsundoku 二分法でLowerBound(List) ABC360-D Ghost Ants 二分法でUpperBound(List) ABC346-F SSttrriinngg in StringString 二分法でLowerOrEqual_Max(List) ABC360-D Ghost Ants 二分法で、Valとの差の最小値を返す ARC121-B RGB Matching CanAchieveメソッドを使った二分法その1(long型) ABC144-E Gluttony CanAchieveメソッドを使った二分法その2(decimal型) ABC236-E Average and Median CanAchieveメソッドを使った二分法その3(double型) ABC255-B Light It Up 二分法で広義単調減少での連続した値の区間を求める ABC230-E Fraction Floor Sum 二分法で関数の最大下界を求める ABC342-E Last Train {昇順にソートされた配列,Min,Max}を引数とし、Min以上Max以下な値の個数を返す ABC364-D K-th Nearest {昇順にソートされたList,Min,Max}を引数とし、Min以上Max以下な値の個数を返す yukicoder 2758 RDQ
三分探索で極小値(long)を求めるその1 ABC212-C Min Difference 三分探索で極小値(long)を求めるその2 ABC279-D Freefall 三分探索で極小値(double)を求める 第6回PAST J ポイントとコストと
尺取法その1 ABC032-C 列 尺取法その2 ARC022-B 細長いお菓子 尺取法その3 典型90問 034 There are few types of elements(★4) 尺取法その4 AOJ DSL_3_A: The Smallest Window I
2つの非負整数の足し算が、Limitを超えるかを返す TDP G 辞書順 2正数の掛け算が、Limitを超えるかを返す E8本(数学) 089 Log Inequality 2
ベクトルの内積を求める ARC042-B アリの高橋くん ベクトルの外積を求める ARC042-B アリの高橋くん 線分の交差判定 AOJ CGL_2_B: Intersection 点と線分との距離を求める ARC042-B アリの高橋くん 線分と線分との距離を求める AOJ CGL_2_D: Distance 度数法の角度をラジアンに変換 ABC259-B Counterclockwise Rotation ベクトルとSinとCosを引数として、回転したベクトルを返す ABC259-B Counterclockwise Rotation 円の軌跡が指定座標を含むかを返す ABC259-D Circumferences 円と円の位置関係を判定する E8本(数学) 035 Two Circles 2次元ベクトルの各成分を、GCD(X成分,Y成分)で割る ABC248-E K-colinear Line
初項と公差と項数を引数として、等差数列の和を返す ABC253-D FizzBuzz Sum Hard 初項と公差と項数と法を引数として、等差数列の和を返す ABC238-C digitnum 初項と末項と公差と法を引数として、等差数列の和を返す HHKB 2020 D Squares
初項,公比,項数,法を引数とし、等比数列の和を返す(法が逆元を持つ場合) ABC224-F Problem where +s Separate Digits 初項,公比,項数,法を引数とし、等比数列の和を返す(法が逆元を持たなくても可) ABC293-E Geometric Progression
群数列その1 ABC-029-D 1 群数列その2 競技プログラミングの鉄則 B37 Sum of Digits
Zobrist Hash ABC250-E Prefix Equality
列挙を引数として、列挙内での転倒数を返す ABC261-F Sorting Color Balls
集合に無い値を返す ABC244-C Yamanote Line Game 二分探索のように、範囲を絞るその1 ABC299-D Find by Query 二分探索のように、範囲を絞るその2 ABC269-E Last Rook
ベクトルのX成分とY成分を引数とし、90度回転させた値を設定 ABC339-B Langton's Takahashi 右に90度回転させた盤面を返す ABC210-D National Railway 盤面のハッシュ値を求める ABC264-C Matrix Reducing 盤面の指定行を消す ABC264-C Matrix Reducing 盤面の指定列を消す ABC264-C Matrix Reducing 2次元配列の使用してない部分を縮小して返す(char型の2次元配列用) ABC322-D Polyomino 2次元グリッドへの敷き詰めその1 ABC196-D Hanjo 2次元グリッドへの敷き詰めその2 ABC322-D Polyomino 2次元グリッドへの敷き詰めその3 ABC345-D Tiling 二次元累積和その1 ARC025-B チョコレート 二次元累積和その2 競技プログラミングの鉄則 A08 Two Dimensional Sum 二次元累積和その3 典型90問 081 Friendly Group(★5) 二次元いもす法その1 競技プログラミングの鉄則 A09 Winter in ALGO Kingdom 二次元いもす法その2 典型90問 028 Cluttered Paper(★4) コンピュータ座標の矩形の数値和を求めるクラス ABC331-D Tile Pattern ユークリッド座標の矩形の数値和を求めるクラス ABC354-D AtCoder Wallpaper
01BFSその1 典型90問 043 Maze Challenge with Lack of Sleep(★4) 01BFSその2 ABC213-E Stronger Takahashi 01BFSその3 ABC277-E Crystal Switches 01BFSその4 ARC177-C Routing
45度回転その1 典型90問 036 Max Manhattan Distance(★5) 45度回転その2 ABC351-E Jump Distance Sum
ルジャンドルの定理 ABC280-D Factorial and Multiple
文字列のソートでStringComparer.Ordinalの指定で定数倍の高速化 ABC155-C Poll ローリングハッシュ(long型) 競技プログラミングの鉄則 A56 String Hash ローリングハッシュ(decimal型) ABC287-E Karuta ローリングハッシュ(decimal型) で左や右に文字追加の拡張機能 ARC172-C Election 文字列Sが、文字列Tの(連続してなくてもよい)部分列かを判定 ARC154-B New Place 文字列を引数とし、部分集合の文字列の個数を返す 第11回PAST K 部分列 String型を引数とし、回文判定を行う ABC359-D Avoid K Palindrome
引数のBitSetの部分集合の列挙を返す Educational DP Contest U Grouping C++のPopCount ABC242-D ABC Transform Nを引数とし、0からNまでの2進数表現での、0の個数を返す ABC356-D Masked Popcount ビット全探索と島判定 ABC219-E Moat
途中からサイクルになる数列その1 ABC179-E Sequence Sum 途中からサイクルになる数列その2 典型90問 058 Original Calculator(★4) 途中からサイクルになる情報 ABC258-E Packing Potatoes ダブリングその1 競技プログラミングの鉄則 A57 Doubling ダブリングその2 競技プログラミングの鉄則 B57 Calculator ファンクショナルグラフでのダブリング ABC367-E Permute K times
イベントソートその1 ABC274-F Fishing
ラスベガス法(Guidでランダマイズソート) ABC315-D Magical Cookies モンテカルロ法(1.9秒の間、最良値を調べる) ARC173-B Make Many Triangles
勝敗をメモ化再帰で求めるその1 競技プログラミングの鉄則 A32 Game 1 勝敗をメモ化再帰で求めるその2 ABC349-E Weighted Tic-Tac-Toe
平衡三進数に変換 第7回PAST G べき表現 行列での繰り返し二乗法 Educational DP Contest R Walk decimal型でのsqrtメソッド ABC279-D Freefall
C#メモ