freee プログラミングコンテスト2023(AtCoder Beginner Contest 310)参加記

2023/7/15に開催された、freee プログラミングコンテスト2023(AtCoder Beginner Contest 310)に参加しました。

atcoder.jp

前回と前々回のABCでは、C問題辺りでやらかしてしまい、レートが伸び悩むという展開でした。

その点を踏まえ、今回は前半で取りこぼしが無いように集中していこうという方針で臨みます。とりあえず、目標は水パフォです。

今回の結果

今回は、ABCEの変則4完で終了です。

ABC310結果
ABC310結果

ただ、今回のセットでは、F問題が高難易度だったか、4完でも水パフォの真ん中ぐらいまで取れました。

まあ、今回は不正者が大量に発生したという情報もあり、そのせいで上振れしている感もあるので、なんともという感じ。とりあえず、レートが上がってくれてよかったという所です。

振り返り

今回は、D問題から難易度が跳ね上がった回でした。

ABC310提出結果
ABC310提出結果

A問題

A - Order Something Else

定価のP円もしくは、割引券を使った時に払うQ円+D_iの最小値のうち、小さい方の金額を出力すればよい。

1分59秒で1完。

提出コード

https://atcoder.jp/contests/abc310/submissions/43583158

B問題

B - Strictly Superior

最近のB問題は、とにかく実装量を増やして難易度を上げていこうという方針に見えてしまう。

方針としては、計算量O(N^{2})の全探索が間に合う感じなので、問題文の条件に沿うペアがあるかを愚直に判別するだけ。

実装に結構時間を取られましたが、なんとかACを取り切ることができましたとさ。11分58秒で2完。

提出コード

https://atcoder.jp/contests/abc310/submissions/43592459

C問題

C - Reversible

文字列S_iと、それを逆順に読んだ文字列のうち、辞書順で小さい方をSetに突っ込んでいき、最後にSetのサイズを出せば良い。

15分52秒で3完。今回のC問題はあっさりと解けてくれました。

提出コード

https://atcoder.jp/contests/abc310/submissions/43595160

D問題

D - Peaceful Teams

なんか、最近のD問題にしてはやたらと難易度が高く見える問題。

Nの最大値が非常に小さいので、アルゴリズムの知識でなく、DFSの全探索で解く系の問題かと思われるが、実装の形が全く浮かんでこない。。

あれこれ悩んでいるうちに、残り40分を切ってしまったので、一旦この問題は諦めることにしました。

E問題

E - NAND repeatedly

一読したところ、なにもわからんという感じだが、ここを通せないと負けになる感じなので、なんとか通せないかと考察してみる。

ABC310E考察
ABC310E考察

とりあえず、サンプル1の計算過程を図に書いてみるとある程度のパターンが見えてきた。

どうも、i桁目が0の場合は、前の状態によらず、答えにi - 1を足すことになり、1の場合は、iから前回足した数を引いた数を答えに足すことになりそうだ。

これで計算量O(N)で解ける感じになったので、取り急ぎ実装して提出。初回提出は答えがオーバーフローしてしまうというミスがあったものの、修正してなんとかACを取ることができましたとさ。

86分7秒1ペナで4完。とりあえず、安全圏に行けた感じです。

この後は、時間いっぱいまでD問題を考察しておりました。

提出コード

https://atcoder.jp/contests/abc310/submissions/43636044

F問題

F - Make 10 Again

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

G問題

G - Takahashi And Pass-The-Ball Game

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

Ex問題

Ex - Negative Cost

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

これまでの実績

一時期、1100切りまで下がったレートでしたが、なんとかリカバリすることができております。

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

総括

今回は、実装力が問われるD問題を解き切ることが出来なかったのが大きな反省材料です。

最近、この種の問題を見る事が少なかったので、いきなり出題されると実装に詰まる感じになってしまいました。次回にむけて、復習していこうと思います。

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