競プロ部 オーダー表記編 (1/26 〜1/31)

この記事は約1分で読めます。

まず

未来の人たちのためのシリーズなので、これでわからなかったら、AIやPAIZAなどを閲覧することを強くすすめします。

オーダー表記とは

厳密には違うけど簡単にいえば、どんくらいパソコンが計算するかというもので、O(処理回数)と書きます。例えば、O(100)だったらパソコンが100回計算する。

変数の場合

例えば、

のとき

1番大きい次数以外を消す → 3nの2乗になる

係数を消す →nの2乗になる

よってO(nの2乗)のなる

競プロでの使い方

めっちゃ重要なんだけど、計算量が10億(10の9乗)になったら基本TLE(タイムエラー)になってパソコンが爆発します。(ほんとには爆発しない)

なので、どうにかして計算量を減らす

よく見る削減

どのようにやるかは、その問題次第だけど大体決まってて、

  • O(nの2乗) → O(n)、O(n*logn) これが何気に1番多い
  • O(n) → O(logn)  二分探索でやる
  • O(n*m) → (n +m) 累積和でやる

耐えられる計算量

O(nの2乗) n が3万ぐらいまで耐える

O(2のn乗) nが30まで耐える

O(n*logn) nが多分4000万まで耐える

O(logn) nが10の3億乗まで耐えるらしい

最後に

わからなくてもO()は計算回数って思ってください

コメント

タイトルとURLをコピーしました