AtCoder Regular Contest 144 参加記

2022/7/16に開催されたAtCoder Regular Contest 144に参加しました。

atcoder.jp

ここ最近のコンテストでは、レートが上がったり下がったりで、停滞ムードが漂っている状況。

とりあえず、今回のARCは、Bが400点問題ということで、2完できればなんとかレートが上がるかなという感じだったので、2完を目標として挑むこととしました。

今回の結果

で、結果としては、1完で終了という悲しい結果に。。

ARC144結果
ARC144結果

パフォーマンスは緑にすら届かずで、レートは大幅に下げてしまうことになりましたとさ。

振り返り

B問題が二分探索だということに、まったく気がつきませんでした。

ARC144提出結果
ARC144提出結果

A問題

A - Digit Sum of 2x

最初のうちは、よくわからずだったが、サンプルの解答を見ると、ある程度の法則性が掴めてきた。

  • f(x) = Nの時、f(2x) = MとなるMを最大化する時、x5以上の数字が含まれていると必ず損をしてしまうので、xには4以下の数字だけを含むようにする。

  • 上記のようなxを最小化するには、下位の桁をできるだけ 4で埋めるようにすれば良い。

ということで、M=2Nとし、xは、題の条件を満たし且つ、できるだけ4を下位に埋めた数字とすることに。

あとは実装して提出したら、なんとか一発でACが取れてくれましたとさ。

16分55秒で1完。順位表をみたら、この時点でA問題のACが1000以上付いてたので、少し時間使いすぎかと反省しました。

提出コード

https://atcoder.jp/contests/arc144/submissions/33261534

B問題

B - Gift Tax

サンプルデータから検討してみると、整数列Aの最小値にaを足し、最大値にbを引くことを繰り返し、操作後のmin(A)を求めるのが正当なように見える。

ということで、実装方法を色々考えてみるが、セグ木を使ったやりかたでは実装は無理そう。

ならばと、最大値と最小値を管理する優先度付きキューを使うことでなんとかなるかと実装してみるが、これは上手くいかず。。

残り時間はたくさんありましたが、いかんせん実装方法は思いつかずで、このまま時間切れとなりましたとさ。

で、コンテスト後に解説をみると、二分探索を使うのが正解とのこと。本番中は全く思いつかずだったので、この点は反省したいです。

C問題

C - K Derangement

一応、少し問題を見たものの何もわからず。

D問題

D - AND OR Equation

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

E問題

E - GCD of Path Weights

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

F問題

F - Arithmetic Sequence Nim

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

これまでの実績

今回は、大幅な下げ。レート3桁台も見えてきてしまいました。

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

総括

B問題が二分探索と気づけなかったのが、一番の反省点。このぐらいの典型が思いつかないようでは、まだまだ勉強不足ですね。

とりあえず、日曜のABCではレートを落とさないように頑張るのみです。

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