AtCoder Regular Contest 142 参加記

2022/6/19に開催されたAtCoder Regular Contest 142に参加しました。

atcoder.jp

土曜のABCは所用のため不参加でした。ということで、今週のレート増減は日曜のARCに賭けるのみ。

今回のA問題は300点だそうなので、0完はなさそうという印象でしたが、いつもARCでは0完を避けることを心がけているので、今回もその気持ちで臨むこととしました。

今回の結果

で、今回はなんとか2完を達成することができましたとさ。

ARC142結果
ARC142結果

順位が1000位近辺だったので、レートが上がるかどうか微妙かと思ってましたが、結果をみると、なんと水パフォ。なんとかレートも上昇という形になりました。

振り返り

C問題を解き切ることができませんでした。

ARC142提出結果
ARC142提出結果

A問題

A - Reverse and Minimize

とりあえず、単純な見た目をしており、計算量はあまり考慮しなくて良さそうな問題という印象。

まず、Kに10を0回以上かけた数字が何個N以下となるかをカウントし、その次にKを左右反転した数字に対しても同じことを行う感じの実装を行う。が、、これはWA。

Kを左右反転しても同じ数の場合を見落としていた模様。ということで、対象となる数をSetで管理して、最後にSetのサイズを返すように変更することでACが取れましたとさ。

ちなみに、実装当初、Kを反転した数字がKより小さい場合は答え0というバカ避けのロジックをとりあえず入れておいたのですが、実際のテストケースではそのようなコーナーケースがあった模様。。

まあ、なんにせよ気になるロジックは入れといて損はないということを学びました。

14分11秒1ペナで1完。

提出コード

https://atcoder.jp/contests/arc142/submissions/32593224

B問題

B - Unbalanced Squares

これは、解法が早めに思いついてくれたので助かった。

上の行から順番に数字を埋めていった形から、奇数行と偶数行を入れ替えると、ある行から上と下の行を見た時には全て大きい関係になるか、全て小さい関係になるので、問題の条件は満たせる。

あとは少し重たい実装を行なって提出。ACが取れましたとさ。

36分0秒1ペナで2完。

C問題

C - Tree Queries

なんか久々に見たインタラクティブ系の問題。

とりあえず、初手では、頂点1と2から、そのほかの頂点の距離を質問し、答えを、(1から頂点iの距離+2から頂点iの距離)の最小の値としてみる。。がこれはWA。

ここで、1と2が隣り合う場合のケースがダメと気づく。この場合、全てのiについて、(1から頂点iの距離ー2から頂点iの距離)の絶対値が1になる筈、、ということで実装して提出したら、これがなんと1ケースだけ通らず。。。

あとは時間いっぱい、どんなケースがダメそうかを考えて、行き当たりばったりに実装と提出をしてみるものの、ACには至らずで時間切れとなりましたとさ。

今回のCは、通せてれば相当パフォーマンスが跳ねた筈なので、通せなかったのが悔しいです。

D問題

D - Deterministic Placing

順位表から見るにD問題以降はお通夜状態のようなので、問題すら見ておりません。

E問題

E - Pairing Wizards

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

F問題

F - Paired Wizards

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

これまでの実績

とりあえず、直近のHighest付近まで戻せました。

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

総括

今回はCが解けずで、レートは跳ねませんでしたが、個人的には惜しいところまで行ったという印象です。

ARCは、どちらかというとABCのような典型問題よりも考えがいのある問題が多いという印象。来週もARCがあるので、高パフォーマンスが出せるように精進していこうと思います。

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