AtCoder ABC278

今回のABC278では5完を取れた。勉強の成果を感じる。

 

ABC278

A - Shift

単純実装問題。

 

B - Misjudge the Time

入力時刻から+1440分まで紛らわしい時刻があるか探索。

 

C - FF

  1. T=1の場合、pair(A,B)をmapにinsert
  2. T=2の場合、pair(A,B)をmapからerase
  3. T=3の場合、mapからpair(A,B)とpair(B,A)をfindして両方あれば、Yes。それ以外はNo。

 

D - All Assign Point Add

vector<int>(N)に値を保持し、クエリを処理して行くとTLE。各処理を以下のように言い換える。まず、map<int, int> mに初期値を持っておく。

  1. x_qの値をallに保持。mに空mapを代入。
  2. m[i_q] += x_q
  3. all+m[i_q]を出力

 

E - Grid Filling

単純にH-h * W-w * H * Wの4重ループで探索すると当然TLE。問題文から、H * W * N = 300 * 300 * 300は可能そうなので、最初に数字ごとにこの領域をカバーされちゃうと画面から消えますよという領域を計算しておき(O(HW))、その後H-h * W-w * Nの3重ループで探索。

 

緑パフォーマンス(1100)出たので一安心。レーティングはまだ灰色。