知識集(分野別)

分野ごとにまとめ、その中で難易度別に分類しています。

基本

難易度問わず

  • C++のコードの書き方
    競技プログラミングで使う C++ コードの基本形やコメントの書き方。
  • 入出力
    標準入力・標準出力・デバッグ出力を扱うための基本操作。
  • エラー
    コンパイルエラー、実行時エラー、論理エラーの読み方と直し方。
  • コーナーケース
    特殊な入力でだけ起きる誤答や実行時エラーを見つけるための考え方。
  • テスト
    プログラムが意図通りに動くかを、入力例や自作ケースで確認する方法。
  • シミュレーション
    問題文で指定された操作や状態変化を、順番通りに再現する考え方。
  • 考察問題
    プログラミングの前に問題を深く分析する必要がある問題。
  • 構築問題
    条件を満たす具体的な値・配列・文字列・操作列などを作って出力する問題。
  • 数学的表現
    今後記述予定。

A問題相当

  • if分岐
    条件によって、コードを実行するかどうかや、実行するコードを選ぶ。
  • whileループ
    条件を満たしている間、同じ処理を繰り返す。
  • forループ
    主に繰り返す回数が分かっている場合に、同じ処理を繰り返す。
  • ソート
    今後記述予定。

B問題相当

C問題相当

  • 再帰
    今後記述予定。

変数とデータ構造

A問題相当

  • int型
    最も代表的な整数型で、絶対値がおよそ20億までの整数を扱う。
  • double型
    小数を扱う、64ビットの浮動小数点型。
  • char型
    文字を1文字だけ扱う型。
  • bool型
    trueとfalseのみを扱う型。
  • string型
    文字列を扱う型。
  • vector
    多数の、または不特定個数のデータを一列に並べて扱う動的配列。

B問題相当

  • long long型
    int型より大きな、絶対値がおよそ $9 \times 10^{18}$ までの整数を扱う。
  • size_t型
    vectorやstring型などの添え字やデータサイズを扱う、符号なし整数型。
  • auto型
    実際はauto型という型はなく、型の指定をコンピュータに任せるために使う。
  • deque
    今後記述予定。
  • list
    今後記述予定。
  • map
    今後記述予定。
  • pair型
    今後記述予定。
  • priority_queue
    今後記述予定。
  • queue
    今後記述予定。
  • set
    今後記述予定。
  • stack
    今後記述予定。
  • tuple型
    今後記述予定。
  • イテレータ
    今後記述予定。
  • 多次元vector
    今後記述予定。

D問題相当

E問題相当

F問題相当

G問題以上相当

データ探索系

B問題相当

C問題相当

  • バックトレース
    終了状態から逆再生しながら、解や具体例を復元するアルゴリズム。
  • bit全探索
    今後記述予定。
  • sliding window法
    固定長の連続区間を、前の区間からの差分だけ更新しながら高速に調べる。
  • ツーポインタ法
    配列上のインデックスを $2$ つ持ち、それを並行して動かすことで処理を高速化する方法。
  • 二分探索
    今後記述予定。
  • 尺取法
    連続区間の左右を単調に動かし、条件を満たす区間を高速に調べる。
  • 貪欲法
    今後記述予定。
  • 逆写像
    今後記述予定。
  • 順列全探索
    今後記述予定。

E問題相当

F問題相当

高速化系

難易度問わず

C問題相当

D問題相当

E問題相当

F問題相当

G問題以上相当

文字列系

E問題相当

F問題相当

G問題以上相当

グラフ理論系

C問題相当

D問題相当

E問題相当

G問題以上相当

幾何学系

難易度問わず

E問題相当

F問題相当

  • 凸包
    今後記述予定。

その他数学系

難易度問わず

A問題相当

B問題相当

C問題相当

D問題相当

E問題相当

F問題相当

G問題以上相当

その他

AHC用

典型問題集

C問題相当

D問題相当

E問題相当

  • 最長共通部分列
    2つの数列または文字列に共通する部分列の長さを最大化する典型問題。
  • 最長増加部分列
    数列から順序を保って要素を選び、狭義単調増加する部分列の長さを最大化する典型問題。

F問題相当

G問題以上相当

  • 最大閉包問題
    有向グラフ上で、ある頂点を選ぶならその行き先も選ぶという制約で、選んだ頂点の得点合計を最大化する問題。
  • プロジェクト選択問題
    多くの $2$ 択があり、それらの間に制約がある条件下での最大値問題。