CF1418G - Three Occurrences問題の解法

この問題は2500点の難易度を持つ競技プログラミングの問題です。 問題概要 二つの異なるアプローチを紹介します。 解法1 まず、各数の出現回数が3の倍数である場合を考えます。区間が有効であるためには、全ての数の出現回数を3で割った余りが0である必要があります。この条件を満たすために、出現回数を3で割った余りの配列をハッシュ化し、以前に同じハッシュ値が出現し ...

7月5日 22:08 投稿

ABC367 回顾:典型アルゴリズム問題の解法と実装

A問題: 時間帯の重なり判定 この問題は、ある時間が指定された時間範囲に含まれるかを判定するものである。注意点として、時間帯が翌日にまたがるケースがある。これを処理するために、終了時刻が開始時刻より小さい場合は終了時刻に24を加算し、範囲を正しく表現する。 次に、基準となる時刻(国王が叫ぶ時刻)がその範囲内にあるか、または24時間を加えたバージョンが範 ...

7月3日 23:27 投稿

文字列の最適削除と辞書順最小化アルゴリズム

各位置 i の文字を c[i] とし、canErase[x][y] を「文字 x が直後の文字 y を削除可能か」を表すブール配列とする。maxReach[i] は、位置 i から連続して削除可能な最大範囲の終端インデックスを示す(つまり、i+1 から maxReach[i] までの文字はすべて削除可能で、maxReach[i]+1 は削除不可能)。 貪欲戦略として、ある文字が自身の後続文字を削除でき、かつ自身も他の文 ...

6月11日 23:52 投稿