AtCoder Beginner Contest 220 参加記

2021/9/26に開催された AtCoder Beginner Contest 220に参加しました。

atcoder.jp

一時のレートの下落傾向は止まったものの、ここ最近のABCは3完止まりが続いているので、そろそろ4完の壁を超えようという気持ちで臨むこととしました。

今回の結果

そして今回は久々の4完達成!!なんとか有言実行という形になりました。

ABC220結果

ABC220結果

とはいえ、パフォーマンスは緑の下位程度。

4完だったのは問題に恵まれただけなのかもしれません。

が、結果はでたので細かいことは良しとしましょう。

振り返り

Cで少しやらかし、無駄に順位を下げてしまいました。

ABC220提出結果

ABC220提出結果

A問題

A - Find Multiple

問題を一読して、なんかうまいやり方もありそうかと思いましたが、とりあえず早く提出することを優先しました。

AからBの範囲をfor文で全探索し、Cの倍数があればそれを返却、なければ-1を返却することでACが取れました。

提出コード

https://atcoder.jp/contests/abc220/submissions/26125384

B問題

B - Base K

問題文の通り、愚直にK進数の計算を行いました。これも問題なくAC。

しかし、後程見直してみると、Javaには進数変換の機能が標準ライブラリにあるので、それを活用したほうがよかったかなーと。。

提出コード

https://atcoder.jp/contests/abc220/submissions/26132336

C問題

C - Long Sequence

まともに1つずつ計算するとTLEになる系の問題。

まずはXを数列Aの合計Sで割った答えをN倍する。

あとは、XSで割った余りをもとめ、そこからAの先頭から引いていき、答えが0未満になったら、これまで引いた要素数を答えに足す。

という解法でよかったはずが、0未満のところを0以下と誤った解釈をしてしまい、WAを食らってしまいました。。

問題文はちゃんと読まないといけないねと反省しながらなんとかACを取りました。

提出コード

https://atcoder.jp/contests/abc220/submissions/26141980

D問題

D - FG operation

実はこの問題も最初問題文の読み間違いがあり、操作Fが左端の要素を、操作Gが右端の要素を操作するのかと勘違いしてました。

で、全く解法の想像がつかない状態でしたが、操作F,Gとも左端の要素に対する操作ということに気付いたら、DPで解くやつだということがわかりました。

 dp[i][j] :=操作がi番目まで進んだ時に、左端の数字がjとなる場合の数

とし、あとは操作Fの場合、Gの場合それぞれの遷移を書くことで答えを求めることができました。

コンテスト中にDPを通したのはほんと久しぶりな気がします。

久々の4完目のAC。

提出コード

https://atcoder.jp/contests/abc220/submissions/26155922

E問題

E - Distance on Large Perfect Binary Tree

チラ見したけど、何も分からずで早々に退散。

F問題

F - Distance Sums 2

EよりFの方がAC多めだったので、なんとかなるかと思ったものの、結局実装方針すらよくわからず。結局、なにもできないまま時間切れになりました。

うーむ、、今後はグラフ問題も重点的に予習しておく必要があるな〜。。

G問題

G - Isosceles Trapezium

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

H問題

H - Security Camera

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

これまでの実績

なんとかグラフが右肩上がり模様になっております。この勢いで緑復帰まで持っていきたいものです。

コンテスト実績

コンテスト実績

総括

久々の4完達成ですが、パフォーマンスは緑の下の方。今回は問題のレベルに多少救われたのかもしれません。

やはり、緑diffぐらいの問題を安定して解けないとこれ以上上がれないような気がします。今後も緑diff近辺の問題を中心に精進を重ねていきたいと思います。

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