AtCoder Regular Contest 165 参加記

2023/9/17に開催されたAtCoder Regular Contest 165に参加しました。

atcoder.jp

先月はARCの開催がなかったので、しばらくぶりの参加です。今年はARCで良い結果が出せておらず、0完爆死で緑落ちするのではという不安もありますが、今回は最低でも1完以上を目指して、水色レートを維持することを目標に頑張ります。

今回の結果

宣言通り、なんとか1完を確保したという結果になりました。

ARC165結果
ARC165結果

パフォーマンスは、ギリギリ水色に届かずでしたが、なんとかレートはわずかな減少にとどまり、水色レートを維持することができました。

振り返り

B問題は惜しいところで解き切る事ができませんでした。

ARC165提出結果
ARC165提出結果

A問題

A - Sum equals LCM

1番目の条件、A_1 + A_2 + ... + A_n = Nについては、1を任意の数だけ詰め込む事ができるので、本質的に言えばA \ne BかつLCM(A,B)=Nとなる2以上の整数A,Bが存在するかという問題と言える。

これを判定するには、Nの約数列挙を行い、2以上の相異なる約数同士について、GCDが1になるペアがあればOKかなあという感じで実装。

で、これで提出してみたら、1発でACを取る事ができましたとさ。

11分41秒で1完。結構スムーズに1完達成できたと思ってましたが、この時点でA問題のAC数は900位に達しており、順位的には大したことなかったです。

提出コード

https://atcoder.jp/contests/arc165/submissions/45671705

B問題

B - Sliding Window Sort 2

順列Pの連続するK個の要素を1回ソートすることで得られる、辞書順最大の順列は何かという問題。

まず、Pの中でK個の連続する要素が単調増加している箇所がある場合、そこをソートすればPと同じ結果になる。ソートすることで辞書順が大きくなることはあり得ないので、この場合はPをそのまま出せばOKかと。

そういう箇所がない場合だが、これが難しい。とりあえず後ろからソートするのが良さげだが、サンプル3を見ると、どうもそういう感じではないので、工夫が必要。

サンプル3の見た目から、後ろK個の要素の最小値が、K+1個目より大きい場合、ソートする範囲を左にシフトできるという感じなので、配列全体を通して、そのような箇所があるかを判定し、ある場合、最初に見つけた場所をソート箇所にするという感じで組んでみましたが、これはWA。。

あとは、色々条件をこねくり回してみましたが、全然WAが取れず。結局ACを取り切る事ができずで、時間切れになりましたとさ。

で、後で解説を見てると、結局惜しいところまで近づいていたものの、考察の詰めが甘かった模様。この辺りの考察の雑さが今後の反省点ですね。

C問題

C - Social Distance on Graph

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

D問題

D - Substring Comparison

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

E問題

E - Random Isolation

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

F問題

F - Make Adjacent

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

これまでの実績

土日を通して、なんとか水レートを維持する事ができたという感じの結果になりました。

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

総括

今回は、なんとか1完を確保しましたが、内容的には2完は狙えたかという感じだったので少し残念な結果です。

雑な考察をしていては、ARCで好成績を残すことはできないという感じですね。次回に向けてARC過去問の精進も継続していこうと思います。

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