ABC234感想

結果

人生初の5完。5完は1つの大きな目標だったので、本当に嬉しいです。

f:id:iiko_11:20220108233130p:plain

f:id:iiko_11:20220108233152p:plain

A問題

defを使って関数f(x)を定義しました。新鮮味のあるA問題でした。

B問題

入力の数が小さいB問題は大抵全探索で解ける気がします。

C問題

まず、何桁かを考え、その後、前から0か2を割り振っていきました。実装が少し大変でした。2進数の1を最後に2に変更したら良いだけだったという解説を見て、感動しました。確かにその方法だと実装も簡単そうです。思いつけなくて悔しいです。

D問題

優先度付きキューを使う発想がなく、最初bisect.insort関数を使ってTLE。listの長さを変えるのには時間がかかるという事実を肝に銘じ、この類のTLEをなくしていきたいと思います。setを使いながらごちゃごちゃやってなんとかACできました。最初の方のABCで優先度付きキューの問題を解けなくて悔しい思いをしたにもかかわらず、優先度付きキューの発想が出なかったというのは本当に反省しなくてはなりません。

E問題

考えるべき範囲において、等差数なるものがそれほど多く存在しないことに気づけたのが勝因でした。後は、等差数を列挙、ソートし、bisect.bisect_left関数を使って適切な等差数を出力しました。

F問題

dpというのはわかりました。さらにO(n**2)のコードを書いたつもりで提出してTLE。どこがダメだったのか要復習ですが、的外れではなかった気がします。

総括

個人的にはEよりDの方が難しく感じたので、いつもより難易度の優しいE問題だったのかもしれませんが、それでも5完という目標を達成できて嬉しいです。5完の頻度を増やすことを目標に頑張っていきたいと思います。

余談

日本では、コンビニの数より歯科医院の数の方が多いらしいです。個人的には、直感に反しすぎです。