結果
4完。先週は3完だったので、素直に嬉しいです。
A問題
自分がコンテストに出始めて以来、最も簡単な問題だったように思います。
B問題
辞書を履修していたのでとても簡単に解くことができました。pythonの場合、辞書はdefaultdictというライブラリを使うと便利です。当初は難しそうだという理由で敬遠していましたが、一度使うと虜になってしまいました。
C問題
身長順にソートして二分探索しました。「~以上/以下のものはいくつあるか。」と問われたら二分探索が使えることが多い気がします。問題を見てすぐに二分探索だと気づけたことに成長を感じました。
D問題
1列に並ぶ時、1人が3人以上と隣り合うことはできません。この条件のみを考えて提出してWAを喰らってしまいました。考察してみると、(1,2)、(2,3)、(3,1)が全て隣り合う時、円を作るしかなくなるため条件を満たしません。これをUnion-Findを用いて判定し、ACできました。隣り合う2人を次々に連結させていき、新たに連結させようとする2人がすでに連結しているならば、円(閉路)ができてしまうので、条件を満たさないといった具合です。
E問題
D問題でWAしたものの順調に歩みを進め、残り80分。問題をみると、かなり練習してきた桁DPで解けそうな雰囲気。今回こそは5完できるかもしれないと希望を抱いて問題に取り組みましたが、何をどうしたらいいのか分からないままタイムアップ。圧倒的実力不足です。来週までにACします。
総括
E問題の壁が厚すぎます。E問題が解ける日は来るのでしょうか。もし解けたら、嬉しすぎて眠れない気がします。
余談
ABC231は全体的に問題文の文章量が少なく、文字嫌い無能な私的にはとてもありがたかったです。意図して文章量を減らしてくださったように感じました。
明日はAHCなるものが開催されるということで、初参加してみようと思います。