ブックマーク / zenn.dev/robertcal (1)

  • なぜ累積和では半開区間を使うと良いのか考えてみた

    はじめに 競技プログラミングをやっていると、累積和では閉区間ではなく半開区間で実装した方が分かりやすくてミスも少ないって聞きますよね。 自分も半開区間で考えて実装していたりしたのですが、簡単な問題を解いて改めて理解を深めたいと思います。 半開区間・閉区間とは 5 \leq x < 8のように、片方の端の点を含み、もう片方の端の点を含まない区間を半開区間と言います。角括弧と丸括弧を使い、[5,8)のように表記します。 また、5 \leq x \leq 8のように、両方の端の点を含む区間を閉区間と言います。こちらは[5,8]のように表記します。 使う問題 累積和を使う簡単な問題です。この問題を半開区間、閉区間それぞれを使って解いてみたいと思います。 解いて比較 半開区間バージョン #include <bits/stdc++.h> using namespace std; int main()

    なぜ累積和では半開区間を使うと良いのか考えてみた
    manji0
    manji0 2022/01/23
  • 1