AtCoder Regular Contest 166 参加記
2023/10/8に開催されたAtCoder Regular Contest 166に参加しました。
土曜のABCは、3完緑パフォという残念な結果で、レートの方は緑落ち間近というところまで落ちてしまいました。
今回負けを喰らえば、即緑落ちというところですが、これまでも目先のレートを守るためにUnratedで参加する意味もないという考えでやって来たので、今回もRated参加します。
配点を見ると、2完行かないと水パフォは厳しいかという感じなので、2完目標で挑むこととしました。
Rated参加します。
— devgenjin77 (@devgenjin77) 2023年10月8日
爆死で即緑落ちという状況ですが、なんとか2完以上確保してレートを上げられるように頑張ります✊
AtCoder Regular Contest 166 - AtCoder https://t.co/ecCQ1tawHI
今回の結果
結局、0完爆死を喰らってしまいました(泣)
今回の0完は灰パフォということで、レートの方は大きく下落。またまた緑コーダーの身分に戻ることとなりましたとさ。
結局0完爆死を喰らい、緑落ちしました😭😭
— devgenjin77 (@devgenjin77) 2023年10月8日
また、再入水できるように頑張ります
devgenjin77さんのAtCoder Regular Contest 166での成績:1609位
パフォーマンス:354相当
レーティング:1216→1153 (-63) :(#AtCoder #ARC166 https://t.co/Fxg7AFpGdG
振り返り
Aはともかくとして、BのREを解決することが出来なかったのが残念でした。
A問題
C
→A
、C
→B
、AB
→BA
、以上3種類の操作を繰り返すことで、文字列を文字列にすることができるかという問題。
最初の方、BA
→AB
の操作も可能と誤読したせいで、誤った実装方針で突き進んでしまいました。
当初の実装方針としては、
の文字を
C
にすることができないので、がC
で、がC
でない場合はNG。の文字を
C
で区切った範囲でを見た時、それぞれの文字列を、、とすると、上のA
の文字数が、のA
の文字数を超えるか、上のB
の文字数が、のB
の文字数を超える場合はNG。
という感じで組んでましたが、サンプルが通らなかったタイミングで、結局、文字の移動がAB
→BA
一方通行になるのでこれではダメということに気づきました。
方針は半分合ってそうな気がするので、あとはAB
→BA
の操作に限定された時にどのような判定をすべきかというところなのですが、これが思いつかず。
色々悩んでるうちに、コンテスト時間の半分を使ってしまったので、一旦飛ばしてB問題に取り組むこととしました。
B問題
相異なるについて、をの倍数、をの倍数、をの倍数にする操作をしたときの最小操作回数。
相異なるについて、をの倍数、をの倍数にする操作をしたときの最小操作回数。
相異なるについて、をの倍数、をの倍数にする操作をしたときの最小操作回数。
相異なるについて、をの倍数、をの倍数にする操作をしたときの最小操作回数。
を 倍数にする操作をしたときの最小操作回数。
以上の操作回数から最小のものを選ベば良いだろうというのが方針として見えて来たので、あとは実装するだけ。
最初は、配列に対して、前記の7種類の操作回数をそれぞれ愚直に計算して、それぞれ操作回数で降順ソートしてから、先頭の高々3要素を引っ張ってきて全探索すれば良いかということで組んでみました。
が、これを提出してみたら、なぜかRE。。。
当初、要素について7種類全ての操作回数を計算したあとソートしているので、メモリの食い過ぎかと思い、途中で不要になった配列を廃棄したり、GCをかましてみたりしましたが、全くREが取れず。
結局、このREが取れないまま、時間切れを迎えてしまいました。
で、後で振り返ってみると、REの原因は単なる配列外参照ということが判明。。
このバグをとっておけば、最初の7種の操作回数全てソートでも普通に通っていたようです。サンプルのテスト結果を普通に確認できていれば防げたバグだけに、悔やまれます。
C問題
問題すら見ておりません。
D問題
問題すら見ておりません。
E問題
問題すら見ておりません。
F問題
問題すら見ておりません。
これまでの実績
この土日で、レートを99落としてしまいました。。
総括
A問題は、自分の考察力不足で解けず。B問題は、自分の単純ミスで解けずということで、まだまだ足りない部分があるということを痛感した回でした。
今回は惨敗しましたが、また水色コーダーに戻れるように、今回の復習を含め、日々精進していきます。
ということで、また次回も頑張ります。