AtCoder Beginner Contest 230 参加記

2021/12/3に開催されたAtCoder Beginner Contest 230に参加しました。

atcoder.jp

前回参加したARC130で、わずかに冷えてしまったので今回は連敗だけは避けようという気持ちで参加することにしました。

今回の結果

で、結果ですが、久々の3完という無念な結果となりました。。

ABC230結果
ABC230結果

こりゃ、だいぶ冷えるかと思ったのですが、なんとか茶色パフォの上の方だったので、なんとか、かすり傷ですんだかというところです。

振り返り

D、E以降は全く手が出ませんでした。

ABC230提出結果
ABC230提出結果

A問題

A - AtCoder Quiz 3

やたら前置きが長いA問題だったが、Nが42を超えた場合、Nに1を足して表示してやればOK。

問題なくACを取ることができました。

提出コード

https://atcoder.jp/contests/abc230/submissions/27645480

B問題

B - Triple Metre

当初、oとxの並びであり得ないパターンを検討していく問題かと思ったが、よくよく考えると、|S|が10以下程度ということで、"oxx"をある程度の長さで連結しておいて、Sがその連結文字列に含まれるかを考えれば良さそう。

ということで、あとは実装して問題なくACが取れましたとさ。

提出コード

https://atcoder.jp/contests/abc230/submissions/27651003

C問題

C - X drawing

問題文を読んだだけでは、問題の意味がさっぱり分からずに時間を溶かしてしまったが、サンプルをみるにマス目(A,B)を中心としたXの字を書いて、あとは四角形で切り取った部分を表示せよということらしいことがわかった。

Nの最大値が10^{18}ということで、マス目全ての状態を管理するのは不可能ということで、(P,R)を左上、(Q,S)を右下とする四角形で各マス目の状態が判定できれば良さそう。

あとは、判定するマス目に対して、kが求めることができる場合、問題文のとおりの条件式に合致するかどうかを判定することでなんとかACが取れました。

提出コード

https://atcoder.jp/contests/abc230/submissions/27662023

D問題

D - Destroyer Takahashi

なんか見た目上、区間スケジューリング問題っぽい形をしたこの問題。

サンプルの見た目上、一番R_iの小さい順番でソートし、右端から+D - 1列目までにパンチをすることでいけそうな気がするが、証明もおぼつかなかった為実装に手をつけることができず、いろいろ悩んでしまい時間を溶かしているうちに時間切れとなってしまいました。

で、解説をみると結局、区間スケジューリング問題だったようで解法も思いついたものとそう変わらないものだったというオチでした。。

こんなことだったら、とりあえず実装をしてしまえば良かったかなーと思うものの後の祭り。自分の実力不足を認めるしかありません。

E問題

E - Fraction Floor Sum

D問題に詰まってしまったため、E問題もチラ見してみましたが、これもよく分からずで早々に諦め。

F問題

F - Predilection

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

G問題

G - GCD Permutation

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

H問題

H - Bullion

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

これまでの実績

ついに、ABC単体で見た時の連勝もストップしてしまいました。

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

総括

今回のD,E問題は、ある程度典型アルゴリズムに対する理解が無いと対応できない問題。やはりまだまだ典型に対する知識を得るための精進が足りないと感じる次第です。

ここ数ヶ月レート上昇を続けてきましたが、実力の方は早々上がっていないようで、このままでは緑の下位の方で停滞する可能性が高いですね。今回の問題も復習もそうですが、当面は典型アルゴリズムを習得することを目標に精進をしていきたいと思います。

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