AtCoder Beginner Contest 196 参加記

2021/3/20に開催されたAtCoder Beginner Contest 196に参加しました。

atcoder.jp

前回のABCコンテストは3完という微妙な成績。今回は少なくとも4完以上を目指そうという気持ちで臨みます。

今回の結果

で、今回の結果はノルマ達成の4完で終了でした。

ABC196結果

ABC196結果

しかしながら、今回は難易度が高かったためか、4完でも個人的に過去最高のパフォーマンスが出ており、レーティングは大幅に上昇してくれました!

振り返り

EのTLEがどうしても取れませんでした。

ABC196提出結果

ABC196提出結果

A問題

A - Difference Max

a \le x \le b, c \le y \le d のとき、x - yの最大値を求める問題。

上手くやれば少ない計算で解けそうだが、とりあえずさっさとACを取るために、xyの取りうる値を二重ループで全て計算して最大値を求めることにしました。

この実装で問題なくAC。

B問題

B - Round Down

Xを文字列型で受け取る。小数点が含まれていれば、その前の文字までを出力し、なければXをそのまま出力すれば良い。

これも問題なくAC。

C問題

C - Doubled

1以上の整数について、同じ数を2つ文字列として連結させた結果がN以下のものを数え上げればOK。

これも問題なくAC。

C問題AC時点で12分程度。個人的には良好なペースです。

D問題

D - Hanjo

HWが小さいので、直感的に全探索すれば良いんじゃね?という感じで実装に臨むことに。

んで、長方形の畳を縦、横に置くパターンそれぞれと、正方形の畳を置くパターンで深さ優先探索を行い、最終的に全ての畳を使い切れたパターンを数え上げることにしました。

で、解法は間違えてなかったようですが、実装でかなりバグを作り込んでしまいまして、まともにサンプルを通すのに30分以上もかかりました。

そんなこんなでなんとかAC。

E問題

E - Filters

D問題終了時点で、40分弱残し。5完は行けるかという感じで臨んだE問題。

問題を一読した限りではよく内容はわからんが、多分メモ化DFSすりゃ行けるんじゃないかという直感を頼りに、実装をしてみることに。

で、サンプルは通ったので投げてみると、これが余裕のTLE。。

少し実装を変えてみたものも投げてみましたが、結局TLEは取れず。改善策も思いつかないまま時間切れを迎えることになりました。

F問題

F - Substring 2

こちら順位表を見てみるとコンテスト終盤でもAC数200行かないぐらいの難易度だったので、問題すら見ずに諦めました。

これまでの実績

ここ4ヶ月ぐらい、800前後をうろうろしてましたが、やっと飛躍した感じです。

コンテスト実績

コンテスト実績

総括

今回は、個人的に最高のパフォーマンスを出すことが出来ました。

これまでの精進の結果が形として出てきている格好ではありますが、この辺りで満足しては、またレートも転落しかねませんので、引き続き精進を続けていこうと思います。

また、次回も頑張ります。