AtCoder Beginner Contest 314参加記

2023/8/12に開催された、AtCoder Beginner Contest 314に参加しました。

atcoder.jp

コンテスト前のレートは1180。今回水パフォの上の方が取れれば、十分入水できるというところまで来ました。

今まで何回も入水目前で跳ね返されてきましたが、今回こそ入水を決めるぞという気持ちで挑みました。

今回の結果

4完というなんとも中途半端な結果でした。。

ABC314結果
ABC314結果

しかし!E以降が高難易度だったおかげか、パフォーマンスが1400台まで伸びてくれて、レートの方はギリギリの1200越え!

初入緑から、足掛け3年。やっとのことで初入水を達成することができました!

振り返り

Dまでは順調でしたが、E問題以降は歯が立たずでした。

ABC314提出結果
ABC314提出結果

A問題

A - 3.14

問題文から円周率の小数点以下の文字列をコピペする。後は3.の後ろにN文字分、さっきコピペした文字列をくっつけて出力するだけ。

なんか、今回ジャッジの起動が遅かったか、提出してからWJの状態が続いたので、ほっといて次の問題に行きましたが、結果は問題なくACでした。

1分7秒で1完。

提出コード

https://atcoder.jp/contests/abc314/submissions/44487693

B問題

B - Roulette

最近、やたらと実装がめんどくさい問題が出てくる印象しかないB問題。今回も、大分実装がめんどくさい問題でした。

とりあえず、Xに賭けている人を対象に、賭けている数の個数の最小値を算出してから、Xに賭けている人かつ賭けている数の個数がさっき算出した最小値の人だけをリストに入れて回答するというやり方で実装。

問題なくACが取れて、9分45秒で2完です。

提出コード

https://atcoder.jp/contests/abc314/submissions/44496071

C問題

C - Rotate Colored Subsequence

  • 各色iについて、出現位置を昇順に並べた配列P_iを用意する。

  • 答えの文字列をTとしたとき、SP_{i, j}文字目を、TP_{i,(j+1)mod|P_i|}文字目に設定する。この処理を各色i全てで実行する。

こんな感じの実装でACが取れましたとさ。19分1秒で3完。

提出コード

https://atcoder.jp/contests/abc314/submissions/44502248

D問題

D - LOWER

全てを大文字または小文字にする操作を、全て愚直に実施してたらTLEになる系の問題。

こういう場合は、クエリ先読みして、全体に対する操作のうち最後に出てくる1回だけ実際に操作するようにすれば良い。

実装して提出したところ、1000msec近くかかりましたが、なんとかACが取れました。30分19秒で4完。

提出コード

https://atcoder.jp/contests/abc314/submissions/44508738

E問題

E - Roulettes

あまり理解していない期待値の問題。AC数の推移からして、青diffぐらいはあろうかという感じです。

問題を通読したところ、とりあえずDPっぽいかなあという印象でしたが、実際の遷移が分からず。。

結局、1時間以上取り組んでサンプルが合う実装すら作れずで終了になりましたとさ。

F問題

F - A Certain Game

Fも一応チラ見しましたが、何もわからずでした。

G問題

G - Amulets

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

Ex問題

Ex - Disk and Segments

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

これまでの実績

足掛け3年かけて、念願の初入水!諦めずに続けてきて良かったです。

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

総括

今回は、4完という結果でしたが、E以降に崖があったので、パフォーマンスが高めに出てくれたという要素もあったかと感じています。

また、入水は達成しましたが、これ以降は水パフォを取り続けないと緑に転落するというプレッシャーを背負う形となりました。これまで以上に高難易度の問題を安定して解けるようにならないと現状維持すら難しくなってきますね。

まずは、目先は水レートを維持すること、そして次の目標である入青に向けてさらなる精進を継続していこうと思います。

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