AtCoder Beginner Contest 297 参加記

2023/4/9に開催されたAtCoder Beginner Contest 297に参加しました。

atcoder.jp

現状は、早く入水することが大目標。そのためにも、今回もなんとか水パフォを目指して頑張ります。

今回の結果

4完止まりという残念な結果になりました。

ABC297結果
ABC297結果

パフォーマンスの方はというと、緑の真ん中ぐらい。目標には届かずで、負けはしたものの、とりあえずかすり傷で済んだという感じです。

振り返り

惜しくも、E問題を解き切る事ができませんでした。

ABC297提出結果
ABC297提出結果

A問題

A - Double Click

先頭から始めて、隣同士の要素の差がD以下になるかチェックしていけばよい。

問題なくAC。2分21秒で1完。

提出コード

https://atcoder.jp/contests/abc297/submissions/40453114

B問題

B - chess960

少しややこしい問題だが、Sの先頭要素から探索し、問題文の条件通りに並んでいるかを愚直に判定する方針で実装。

こちらも問題なくAC。7分15秒で2完。少し時間掛かりすぎです。

提出コード

https://atcoder.jp/contests/abc297/submissions/40458274

C問題

C - PC on the Table

各行ごとに前から見ていって、TTの並びがあれば、PCに置き換えることを繰り返せばよい。

これも、実装に少し時間がかかってしまいましたが、ACが取れました。

13分23秒で3完。replaceAllとかを使って少し効率的に実装したほうが良かったかもしれません。

提出コード

https://atcoder.jp/contests/abc297/submissions/40463813

D問題

D - Count Subtractions

順位表からすると、D問題にしては、やたら難易度が低い問題かなあという感じ。

問題文に書いていることを愚直に実装するとTLEになるが、A > Bとしたとき、\lfloor {\frac{A}{B}} \rfloor回減算操作を行えばABの大小関係が入れ替わるので計算量が減らせる。

あとは、 A mod B = 0の時に注意すればOKという感じで実装したら、問題なくACがとれましたとさ。22分35秒で4完。

提出コード

https://atcoder.jp/contests/abc297/submissions/40470209

E問題

E - Kth Takoyaki Set

何気に難しそうな見た目をしているが、順位表上では結構解かれている感じなので結構焦りました。。

小さい方からK番目を求めるということなので、二分探索かなあという感じでしたが、まずもって上手いやり方が思いつかず。

それでも、なんとかゴリ押しで通せないかということで、自分以下の要素がK個作成できる最小の値を二分探索で求める的なことをやってみたが、実装が上手くないのか惜しいところでTLEになってしまう。。

結局、このTLEが取れずじまいのまま終了となりました。

解説を見てると、TreeSetを使う手があったというところ。この辺が思いつけなかったのはとても残念です。。

F問題

F - Minimum Bounding Box 2

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

G問題

G - Constrained Nim 2

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

Ex問題

Ex - Diff Adjacent

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

これまでの実績

今回は微減。停滞モード継続中です。

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

総括

今回のE問題は、ちゃんと解けないとあかんやつだったなあという印象。この辺を取りこぼしているようでは、水色コーダーへの道はまだまだ遠いですね。

今回の復習は淡々と行うとして、一度水Diff周辺の過去問の振り返りなどもやりつつ、まずは安定して水パフォが取れるように準備していこうと思います。

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