モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249)参加記

2022/4/23に開催された、モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249)に参加しました。

atcoder.jp

今週は土曜にABC、日曜にARCがあるので、なんとかここいらで大きくパフォーマンスを上げて行きたいところ。まず、今回のABCコンテストでは水パフォを目指して頑張ることとしました。

今回の結果

しかしながら、、、なんと、、、今回は2完で爆死してしまいました。。。

ABC249結果
ABC249結果

パフォーマンスは茶色の真ん中らへんという、だいぶ久々にみる結果。

今回は大きな下げを喰らいましたが、レートは4桁維持できてるだけマシかな。。

振り返り

C、D問題でバグらせてしまい、ACを取り切ることができませんでした。

ABC249提出結果
ABC249提出結果

A問題

A - Jogging

一見して、だいぶややこしそうな問題。とにかく上手い解法が思いつかない。。

しかし、まずはACを取らないと始まらない。ということで、X秒まで1秒毎に愚直にシミュレーションする方法でなんとか間に合わせる方針とする。

作り上げてみると、なんか、かえってややこしいロジックになったが、とりあえず完成に漕ぎ着けてACを取ることができましたとさ。

7分9秒という、なんとも出遅れ気味のタイムで1完。

提出コード

https://atcoder.jp/contests/abc249/submissions/31176452

B問題

B - Perfect String

これはA問題より簡単。こっちをA問題にすればいいのに。。

ぱっと思いついた解法としては、文字列Sの中に、大文字、小文字がそれぞれ存在したかを保持しておくboolean変数を用意し、あとは文字の重複があるかをSetで管理すれば良い。

ということで、あとは実装をして提出。こちらも問題なくACが取れました。

11分33秒で2完。

提出コード

https://atcoder.jp/contests/abc248/submissions/31007400

C問題

C - Just K

これは、制約が小さいことから、bit全探索でやる問題かと。

ということで、文字列を選ぶパターンをbit全探索で実装し、あとは選んだ文字列中に丁度K 回出現する文字種をカウントすればOK。

の、、はずが、何故かWAが取れない。。。。

何度見返しても、バグの原因がわからず、時間だけが過ぎていく状況に。とりあえず、一旦C問題を捨ててD問題にチャレンジすることとしました。

で、コンテスト終了後になり、冷静になって調べ返してみると、結局bit全探索部分のところで根本的な不具合があることに気づいてしまいました。

bitの立っている場所を判断する処理で、bit列を文字列で扱うことにしたので、順番が逆になったところが不具合の原因になっている模様。。

うーむ。。。普段はあまり実装機会がないので、コンテスト本番で変な実装方法を採用したのがアダになったようです。。

D問題

D - Index Trio

ちょっと難し目な見た目のD問題。でもこれを解けばなんとか緑パフォは行けそうなので、爆死を免れるためには解くしかない。

で、とりあえず考えてみると、A_iの最大値が高々 2 \times 10^{5}ということなので、各数値毎に出現した回数をカウントしておき、あとは各数値ごとに約数列挙を行えばなんとかなるかと。

ということで、実装をしてみましたが、なんとサンプル3が全く通らず。。

どこがおかしいのか、怪しいところを片っ端から見直してみるも、結局ダメ!

結局、サンプルを通すことすらできずで、時間オーバーとなりましたとさ。。

でで、こいつもあとで時間を掛けて復習したのですが、どうしても通らずということで、解説を見たところ、なんと問題文を誤読していたことが発覚!!

題意としては、i,j,kについて同じ数字を2回使っても良いらしく、こちらは、同じ数字を2回以上使わないようにロジックを組んでいたので、どうしてもサンプルより答えが足りなくなってしまっていたというオチでしたとさ。。

なんか釈然としない結果となりましたが、これもまあ仕方ないと割り切るしかないですなー。

E問題

E - RLE

一応問題に目を通したものの、まともな考察すら出来ず。

F問題

F - Ignore Operations

問題すら見れておりません。

G問題

G - Xor Cards

問題すら見れておりません。

H問題

Ex - Dye Color

問題すら見れておりません。

これまでの実績

ここにきて、再度停滞ムードが漂ってきました。水色への道は遠い。

コンテスト実績
コンテスト実績

総括

今回のC、D問題は解法そのものは思いつけるものの、結局実装力が足らずでバグらせてしまうという残念な結果となりました。特にD問題は、問題文の誤読が酷かったなー。

最近は、コンテスト時間中に解けなかった問題を重点的に復習しているのですが、そもそも茶、緑Diff程度の問題を解き切るのにもまだまだ不安が残る実力のようです。

これまで一度解いた問題を再度解き直すなどの対策も必要かというところですね。再度、同じようなミスを繰り返さないように精進を続けていきます。

ということで、また次回も頑張ります。