2021/3/20に開催されたAtCoder Beginner Contest 196に参加しました。
前回のABCコンテストは3完という微妙な成績。今回は少なくとも4完以上を目指そうという気持ちで臨みます。
参加いたします。前回微妙な成績だったので、今度は4完以上目標。レートを落とさないよう頑張ります。
— devgenjin77 (@devgenjin77) 2021年3月20日
AtCoder Beginner Contest 196 - AtCoder https://t.co/XoX7JZesIc
今回の結果
で、今回の結果はノルマ達成の4完で終了でした。
しかしながら、今回は難易度が高かったためか、4完でも個人的に過去最高のパフォーマンスが出ており、レーティングは大幅に上昇してくれました!
4完水パフォでレートは大幅アップ。これに慢心せずに、精進に取り組みます。
— devgenjin77 (@devgenjin77) 2021年3月20日
devgenjin77さんのAtCoder Beginner Contest 196での成績:1152位
パフォーマンス:1421相当
レーティング:873→941 (+68) :)
Highestを更新しました!#AtCoder #ABC196 https://t.co/KCdwr8p1OE
振り返り
EのTLEがどうしても取れませんでした。
A問題
のとき、の最大値を求める問題。
上手くやれば少ない計算で解けそうだが、とりあえずさっさとACを取るために、との取りうる値を二重ループで全て計算して最大値を求めることにしました。
この実装で問題なくAC。
B問題
を文字列型で受け取る。小数点が含まれていれば、その前の文字までを出力し、なければをそのまま出力すれば良い。
これも問題なくAC。
C問題
1以上の整数について、同じ数を2つ文字列として連結させた結果が以下のものを数え上げればOK。
これも問題なくAC。
C問題AC時点で12分程度。個人的には良好なペースです。
D問題
が小さいので、直感的に全探索すれば良いんじゃね?という感じで実装に臨むことに。
んで、長方形の畳を縦、横に置くパターンそれぞれと、正方形の畳を置くパターンで深さ優先探索を行い、最終的に全ての畳を使い切れたパターンを数え上げることにしました。
で、解法は間違えてなかったようですが、実装でかなりバグを作り込んでしまいまして、まともにサンプルを通すのに30分以上もかかりました。
そんなこんなでなんとかAC。
E問題
D問題終了時点で、40分弱残し。5完は行けるかという感じで臨んだE問題。
問題を一読した限りではよく内容はわからんが、多分メモ化DFSすりゃ行けるんじゃないかという直感を頼りに、実装をしてみることに。
で、サンプルは通ったので投げてみると、これが余裕のTLE。。
少し実装を変えてみたものも投げてみましたが、結局TLEは取れず。改善策も思いつかないまま時間切れを迎えることになりました。
F問題
こちら順位表を見てみるとコンテスト終盤でもAC数200行かないぐらいの難易度だったので、問題すら見ずに諦めました。
これまでの実績
ここ4ヶ月ぐらい、800前後をうろうろしてましたが、やっと飛躍した感じです。
総括
今回は、個人的に最高のパフォーマンスを出すことが出来ました。
これまでの精進の結果が形として出てきている格好ではありますが、この辺りで満足しては、またレートも転落しかねませんので、引き続き精進を続けていこうと思います。
また、次回も頑張ります。