AtCoder Regular Contest 154 参加記

2023/1/22に開催されたAtCoder Regular Contest 154に参加しました。

atcoder.jp

前回ARCは1完で惨敗という結果でしたが、今回のARCは問題ABCが300-400-500という配点のため、もしやすると2完は行けるかという印象。

前回ARCで食らった負けを取り戻すべく、まずは2完、行ければ3完を目指そうという気持ちで臨むことにしました。

今回の結果

が、、今回もあえなく1完で終了という残念な結果。。。

ARC154結果
ARC154結果

パフォーマンスは、やっと緑というところ。とうとう、レートは1100を切ってしまいました。

振り返り

全体的に、やらかしがあったり、考察が足りなかったりと、反省点が多い内容でした。

ARC154提出結果
ARC154提出結果

A問題

A - Swap Digit

問題の趣旨はわかったが、どうすればA \times Bが最小になるのかがわからん。

とりあえず、サンプルを見る限り前の桁の大小関係と今の桁の大小関係が入れ子になればOK?という感じで実装してみたら、あえなくWA。。

改めて、サンプルを元によく考えてみると、どちらかの値をできるだけ小さくしたらいいように見える。ということは、Aを可能な限り小さくするように操作したらどうか?

物は試しということで実装してみたら、なんとかACを取ることができましたとさ。

因みに、A \times Bmod 998244353はどうやったら上手く計算できるかがわからんかったので、BigDecimalでゴリ押しできるかと実装。結果、実行時間がほぼ2000msいくかどうかというギリギリのところで耐えてくれましたとさ。

ということで、ジャッジサーバの頑張りにも救われた形で、なんとか0完を回避することができました。24分1秒1ペナで1完。

提出コード

https://atcoder.jp/contests/arc154/submissions/38255593

B問題

B - New Place

とりあえずS,Tでアルファベットの種類と個数が違うとNoというのはわかるが、それ以降がわからんという感じ。

桁ごとに、それ以降に出てくるアルファベットと個数を累積和で持てば、効率的に処理できるかと思ったが、これは単なる検討違い。

とりあえず、全く良いアイデアが出ないまま1時間を経過しようかという状況になったので、一旦この問題は諦めることにしました。

C問題

C - Roller

一読した感じ、なんかB問題よりは解けそうな感じがするが、さてどうなるかというところ。

とりあえず、A_i = B_iとなる最小のiを探索し、一致が一つもなければNoかなあと。。

あとは、先ほど探索したiをスタート地点として、逆順に配列を走査し、A_i \ne B_iの時にA_iA_{i + 1}で置き換えても一致しない場合はNo。それ以外はYesという感じで組んでみました。

が、、これはサンプルが通ったぐらいで、提出したら半分ぐらいWA。。。

結局、ACは取りきれずで時間切れになりましたとさ。

D問題

D - A + B > C ?

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

E問題

E - Reverse and Inversion

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

F問題

F - Dice Game

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

これまでの実績

この土日は連敗という残念な結果。。入水どころかレート3桁突入を危惧しないといけない状態です。

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

総括

今回のARCも1完終了で惨敗という残念な結果でした。

最近の精進内容が、どうもABCの典型に偏っていたのが良くなかったのかもしれません。今後、ARCの過去問埋めも並行して進めようかと思います。

まあ、レートは下落傾向ですが、落ちたものを悔いても仕方なし。来週は再びARCとABC立て続けに開催されるので、これをレート上げのためのチャンスととらえて、また準備をしていこうと思います。

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