2020/8/22に開催されたABC176に参加しました。
ここ2回のABCは2完終了と残念な結果なんで、今回はなんとか3完以上取らんといかんなーという気持ちで参加しました。
参加します。最近2完続きなんで、今回こそ3完以上を!
— devgenjin77 (@devgenjin77) 2020年8月22日
AtCoder Beginner Contest 176 - AtCoder https://t.co/HehwL6NOPF
今回の結果
で、今回はなんとか3完達成しました。まあ一応ノルマ達成みたいなもんです。
パフォーマンスは現在のレーティングとほぼ同じ。レーティングは現状維持でした。
devgenjin77さんのAtCoder Beginner Contest 176での成績:5277位
— devgenjin77 (@devgenjin77) 2020年8月22日
パフォーマンス:553相当
レーティング:540→540 (±0) :|#AtCoder #ABC176 https://t.co/rsyeo5onPZ
3完茶パフォで現状維持でした。2完を脱出できたのでまあ良しとします。
振り返り
3完までは順調でしたが、それ以降がダメダメでした。
A問題
N÷Xを切り上げた値にTを掛ければよい。
が、、最近割り算の切り上げとかプログラムでやったことなかったので、剰余があるかどうかのIF文を入れてなんとかAC。
B問題
各桁の数字を足し合わせて 9の倍数かを判定する問題。これは特に問題なくAC。
C問題
最近鬼門のC問題だが、問題文をみた瞬間、結構簡単そうにみえたので一瞬目を疑ってしまった。
配列を前からみていって、直前の人が身長が高い場合、その高さの差を合計に足し込んでいけばOK。
検証に少し時間をかけたが一発でAC。
D問題
20分ちょいでC問題完了という、個人的には結構なペースでここまで進みましたが、こっから停滞しました。
問題文をみる限り、迷路探索でBFSを使う典型問題の感じでしたが、ワープの条件の実装で大分悩んでしまいました。
結局、色々悩んで時間を潰した挙句、残り10分となったところで、毎回ワープできる時はワープするという、大分効率が悪そうなコードを投げてみたが、それが通るほど世の中甘くないようでTLEを喰らいました。(´・ω・`)
結局時間切れでこの問題は解けず。
E問題
D問題に固執しすぎてコンテスト中に問題文を読めなかったが、見た感じ自分でもなんとか解けそうな問題。なんでD飛ばしてE見なかったの?と一瞬後悔しました。(ま、実際はいうほど簡単ではなかったが。)
解法は以下の通り。
爆破対象を行、列ごとにカウントする。爆破対象が最大数存在する行と列の交点が爆弾の設置候補となる。
つぎに、全ての爆破対象の位置より、その行、列にある爆破対象の数が先に計算したそれぞれの最大数と両方一致するかをみる。
爆弾の設置候補の数と、行と列両方爆破対象が最大数となる爆破対象の数が一致したら、全ての設置候補が爆破対象になるので答えは行列それぞれの最大数を足して1を引けばよい。一致しない場合は、1を引かなくて良い。
この問題は、コンテスト後にACしました。
F問題
コンテスト中に問題が読めなかったが、なんかAGCに出てきそうな感じの問題。解説をみて大分難しそうでしたが、今週中には時間をとって実装しようかと思ってます。
これまでの実績
8月にはいってから相当停滞気味です。精進はしてるんだが、結果が出ないなー。
総括
今回はなんとか3完達成でしたが、今回の問題の難易度からいうと決して出来がよかったとは言えません。ここ最近はいい結果が出てないですが、諦めずに頑張ります。