ABC 073 C問題 Write and Erase
問題
joisinoお姉ちゃんってなんでjoisinoなんでしょ?
考察の流れ
joisinoお姉ちゃんが言った数について,言った回数が奇数回なら最終的に紙に書かれているし,偶数回なら紙に書かれていないことになる.
シンプルなのは各数(1 109)が最終的に書かれているかの情報を持たせた配列を使って,その個数を求める方法だけど,109回ループを回すと間に合わない.
そこで,受け取った数列をソートして(O(N log N)),各数の個数を前から数えていき(O(N)),奇数の場合は結果としてカウントすることにする.
これなら計算量的に間に合う.
コード
Submission #2760411 - AtCoder Beginner Contest 073
1発AC 所要時間20minくらい
反省
- ABC 071 C問題 Make a Rectangle - おふとん王国のコードと同じで,各数の個数を前から数えていくコードがシンプルじゃない感じになっています.解説に書いてある実装を復習する.
- シンプル解で,配列ではなくsetとかに情報を持たせれば,計算量的に間に合うということもわかってはいましたが,setをそんなに使ったことがなかったのでやめました.蟻本を読み返す.