AtCoder Regular Contest 152 参加記

2022/11/20に開催されたAtCoder Regular Contest 152に参加しました。

atcoder.jp

一か月ぶりのARC。ここ最近のARCでは、問題セットとの相性の良し悪しで、結果が大きく上下するというのを繰り返してきました。実際、前回は1完で爆死という結果でした。

まあ、今回はなんとかレートを上げられるぐらいの結果は残したいなあということで、2完を目標として臨むこととしました。

今回の結果

有言実行で、なんとか2完を確保!とりあえず2完と言った割には、だいぶ苦労しました(笑)

ARC152結果
ARC152結果

で、肝心のパフォーマンスは水色の上位!ここ数回の負けを一気に取り戻し、再度入水を狙える位置までレートを戻すことができました。

振り返り

なんとかB問題を解き切ることができました。

ARC152提出結果
ARC152提出結果

A問題

A - Seat Occupation

大分難しく考えすぎだったようで、大きく時間を溶かしてしまいましたが、一度考えを整理して、愚直にシミュレーションする方式で実装しました。

訪れた順に、可能なら一席ずつ開けた形で座らせるようにする。即ち、1人組が来たら、残り座席から最大2席引き、2人組が来たら、最大3席引く。

2人組が来た時に、残り座席数が2未満だったらNo、それ以外はYesという形で実装。

サンプルケースが弱そうだったので、一発で通るか心配でしたが、なんとかACを取ることができました。

24分42秒で1完。とりあえず、0完爆死だけは無くなったということで一安心。

提出コード

https://atcoder.jp/contests/arc152/submissions/36673059

B問題

B - Pass on Path

今回のB問題は、開始30分経っても、AC数が200台ぐらいという、大分激ムズの予感がする問題。

しかし、C問題以降はこれ以上に絶望的な感じなので、なんとかBで上昇の望みを繋ぐしかない。とりあえず、問題を読んでみることに。

で、読んでみると、これまた何をすればよいのかわからんという感じだったが、紙上に数直線を書き、サンプルケースを元に動きを確認するなどして、解法の糸口を探っていく。

色々考えた結果、任意の休憩所から、ABがそれぞれ東西に分かれて出発し、休憩なしで歩いたときにすれ違う位置から一番近い休憩所でどちらかが待機するのが最適じゃないかという考えに至る。

よって、すべての休憩所について、ABが東西に分かれて出発したときにすれ違う位置から最短の休憩所を二分探索で求め、一番近い距離×2を待ち時間とし、これに2Lを足した値を答えとする実装にしてみる。

で、これが見事大当たり!一発でACを取ることができましたとさ。

89分43秒で2完。これで順位は一気に600台に上昇しました!今回は爆上がりの予感がします。

提出コード

https://atcoder.jp/contests/arc152/submissions/36673059

C問題

C - Pivot

残り30分程度あるので、一応問題に目を通したものの何もわからず。。

後ろの問題は確認する気すら出ずということで、今回はここで終了となりました。

D問題

D - Halftree

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

E問題

E - Xor Annihilation

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

F問題

F - Attraction on Tree

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

これまでの実績

なんとか、自身のHighest付近まで戻すことができました。

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

総括

今回のARCは、たまたま当たったBが高パフォーマンスを呼んでくれたので、大きくレートを上げることができました。

2022年も、残り一か月ちょい。この1年、緑レートを行ったり来たりするだけで終わりそうなのですが、なんとか今年中に入水をすべく、次回にむけて、より準備をしていこうと思います。

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