UNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225) 参加記

2021/10/30に開催されたUNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225)に参加しました。

atcoder.jp

緑コーダーになって2回目のコンテスト。まだレーティング的には一発で茶色落ちしかねない状況です。 今回もなんとか緑パフォーマンスを維持しつつ上を目指そうという気持ちで臨みました。

今回の結果

で、今回はなんとか4完を確保。とりあえず茶色落ちは免れたかと。。

ABC225結果
ABC225結果

で、結局パフォーマンスは、いつもと変わらず緑のちょっと上ぐらい。まあ、なんとかレートは微増となりましたとさ。

振り返り

なんとかギリギリ4完を確保できたという状況でした。

ABC225提出結果
ABC225提出結果

A問題

A - Distinct Strings

一読してA問題の割にはムズイかという印象だったが、よくよく考えると、文字列Sに含まれる文字の種類の数で単純に場合分けできる。

文字種が1つの場合は、1通り。2つの場合は3通り。3つの場合は6通り。

以上の解法でAC。と、、いきたいとこでしたが提出コードがバグっており、いきなりWAを喰らってしまいました。。

うーむ、よくよく確認してから出さないといけないですね。

ということで、バグを修正後ACがとれましたとさ。

提出コード

https://atcoder.jp/contests/abc225/submissions/26893149

B問題

B - Star or Not

これもB問題にしてはいきなりツリー構造の話が出てきたのでムズイかという印象。

しかし、これもよくよく考えると、全ての辺が同じ頂点から出ていればスターという判別をすれば良い。

ということで、あとは実装だけしてAC。

提出コード

https://atcoder.jp/contests/abc225/submissions/26898325

C問題

C - Calendar Validator

与えられた行列が以下の条件を満たしていればYes、そうでなければNo

  • B_{i,{j}} + 1 = B_{i,{j+1}} (1列右隣の要素は1大きい)

  • (B_{i,{j}} - 1) \mod 7 = (B_{i,{j + 1}} - 1) \mod 7 + 1 (各要素をマイナス1した時1列右隣の要素の7の剰余は1大きい)

  • B_{i,{j}} - B_{i+1,{j}} = 7 (1行下の要素は7大きい)

で、これを愚直に実装すればOKだったのだが、実装でかなり手こずってしまいう。

結局この問題に30分もかけて、なんとかACが取れましたとさ。

提出コード

https://atcoder.jp/contests/abc225/submissions/26913665

D問題

D - Play Train

最近鬼門のD問題。問題文を見てみると、なんかUnion-Findのような、そうでもないようなという印象。

とりあえず、それぞれの電車の次に連結されている電車と、前の要素を辿った時の先頭の電車を配列で管理する感じにすればなんとかなるのでは?ということで実装。

んで、とりあえずサンプルが通ってくれるぐらいの実装ができたので提出してみたらばTLEとWAを喰らってしまう。

残り時間も少ないので、とりあえず前後の要素をそれぞれ配列で管理するような実装でいいや!という感じで組んでみたら、これがなんとかACを取ることができました。

このD問題、順位表を見る限りAC数が2000行ってたので、これが取れなかったら大分まずいという印象だったので、なんとか命拾いしたというところでしたー。

提出コード

https://atcoder.jp/contests/abc225/submissions/26927556

E問題

E - 7

あまり時間もない状態で一読しましたが、何も思いつかずで終了となりました。

F問題

F - String Cards

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

G問題

G - X

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

H問題

H - Social Distance 2

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

これまでの実績

ジリジリと上昇トレンドを刻んでおりますが、この状態もどこまでつづくことやら。。

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

総括

今回、なんとか4完を確保。結果としては連勝となりましたが、いつも通りの緑ギリギリパフォーマンスであることには変わりありません。

そろそろ、水色パフォを取れないもんかと思っておりますが、そのためにはとりあえず精進あるのみですな。

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