AtCoder ABC278
今回のABC278では5完を取れた。勉強の成果を感じる。
ABC278
A - Shift
単純実装問題。
B - Misjudge the Time
入力時刻から+1440分まで紛らわしい時刻があるか探索。
C - FF
- T=1の場合、pair(A,B)をmapにinsert
- T=2の場合、pair(A,B)をmapからerase
- 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に初期値を持っておく。
- x_qの値をallに保持。mに空mapを代入。
- m[i_q] += x_q
- 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)出たので一安心。レーティングはまだ灰色。