AtCoder Beginner Contest 335(Sponsored by Mynavi)参加記

2024/1/6に開催された、AtCoder Beginner Contest 335(Sponsored by Mynavi)に参加しました。

atcoder.jp

2024年最初のRatedコンテスト。昨年は入水を果たしたものの、現状緑落ちという状態なので、今年は早めの再入水を決めて水色をキープし、入青を伺えるようになることを目標に頑張っていこうと思います。

ということで、今回は再入水に向けて、勝ちを収められるようにがんばります。

今回の結果

気合いを入れてはみたものの、4完という残念な結果で終了です。

ABC335順位表
ABC335順位表

パフォーマンスは、惜しくも水色に届かず。一応、勝ちを収めたものの、少し物足りなさが残る結果でした。

振り返り

E問題のTLEを解消することができませんでした。

ABC335提出結果
ABC335提出結果

A問題

A - 202<s>3</s>

文字列Sの末尾を4に変えて出力するだけ。

実装して、問題なくAC。1分16秒で1完です。

提出コード

https://atcoder.jp/contests/abc335/submissions/49061659

B問題

B - Tetrahedral Number

x, y, zを、それぞれ0からNまで全部試して、x + y + z \le Nなら出力という感じの全探索でOK。

こちらも問題なくAC。3分18秒で2完です。

提出コード

https://atcoder.jp/contests/abc335/submissions/49066589

C問題

C - Loong Tracking

以下考察。

  • i回目の移動後の、頭のパーツの位置のx座標、y座標を、それぞれposx \lbrack i \rbrack posy \lbrack i \rbrack とする。

  • 2のクエリが来た時、pの値が、1のクエリの回数以下の場合、答えは、1のクエリの回数から、(p - 1)を引いた回数の移動後の頭のパーツの位置になる。

  • 2のクエリが来た時、pの値が、1のクエリの回数より大きい場合、答えは、x座標が、pから1のクエリの回数を引いた値。y座標が、0となる。

という感じの実装で提出したら、問題なくACが取れましたとさ。20分50秒で3完。

元々の全パーツの位置を配列で持っておけば、分岐が要らないようにできてシンプルになったかなあという印象ですが、まあACが取れたのでよし。

提出コード

https://atcoder.jp/contests/abc335/submissions/49082063

D問題

D - Loong and Takahashi

考察してみると、N \times Nサイズのグリッド上で、左上から始めて時計回りに1ずつインクリメントしながら移動していくという感じの実装でOKかという感じです。

ということで、少し実装に苦労したものの、問題なくACが取れましたとさ。

36分20秒で4完です。

提出コード

https://atcoder.jp/contests/abc335/submissions/49094184

E問題

E - Non-Decreasing Colorful Path

考察してみると、広義単調増加なパスでない場合は、得点が0になるということで、A_u \gt A_vの場合は、uからvへの辺を引かない有向グラフとして定義すれば良いのではないかという感じ。

あとは、頂点1から始めて、BFSを使って、各頂点毎の最大得点を計算し、最終的に、頂点Nの得点を見ればOKかと。。

ということで、実装してみたら、WAこそ無いものの、TLEという結果に。。。

もう少し考察して、Aの値が同じ頂点で直接辺が引かれている場合、Union-Findを使って、頂点を同一視することで計算量が落とせるのでは?という考えが浮かぶ。

が、、これを実装するものの、TLEが少し減っただけで通らず。

結局、TLEを解決することができずで時間切れになりましたとさ。

F問題

F - Hop Sugoroku

Eが解けないので、これならなんとかなるかと目を通したものの、なにもわからずで終了。

G問題

G - Discrete Logarithm Problems

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

これまでの実績

今年最初のコンテストをなんとか勝ちで終えました。

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

総括

Eは惜しいところで解けませんでしたが、これも実力不足というもの。次回ABCまでにきっちりと復習していこうと思います。

あと、Fは平方分割だった模様。これもまだまだ理解できていないアルゴリズムなので、これを機会に勉強していきます。

ということで、今年も1年競プロを頑張ります。