トヨタ自動車プログラミングコンテスト2024#1(AtCoder Beginner Contest 337)参加記

2024/1/20に開催された、トヨタ自動車プログラミングコンテスト2024#1(AtCoder Beginner Contest 337)に参加しました。

atcoder.jp

最近、5完以上取っての水パフォが全く取れていないので、レートの方も停滞気味です。

今回は、配点的にも5完が現実的な感じなので、なんとか5完以上取って、レートを上げていこうという感じで頑張っていきます。

今回の結果

なんとか5完を確保!参加したABCでは直近の5回が4完以下だったので、大分久しぶりの5完達成です。

ABC337順位表
ABC337順位表

結果として、水色の真ん中あたりのパフォーマンスが取れ、レートは大きく上昇。なんとか再入水が現実的になってきました。

振り返り

Dまでは、なんとかミスなしで順調に来ましたが、E問題で1ミスしたのは反省点です。

ABC337提出結果
ABC337提出結果

A問題

A - Scoreboard

X_iの合計とY_iの合計を比較して、結果を返すだけ。

実装して、問題なくACが取れましたとさ。

一応、提出前の検証も実施してたので、若干遅めの2分34秒で1完です。

提出コード

https://atcoder.jp/contests/abc337/submissions/49436087

B問題

B - Extended ABC

とりあえず愚直で実装する方針で。

Aより前にBCが存在するか、またはBより前にCが存在するならNo、それ以外はYesという感じで実装。

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

提出コード

https://atcoder.jp/contests/abc337/submissions/49445205

C問題

C - Lining Up 2

入力データより、先頭の人を起点にした、有向パスグラフを構築する。あとは、先頭から順にたどっていけば解けるかという印象。

ということで、こちらも実装してなんとかAC。17分24秒で3完です。

提出コード

https://atcoder.jp/contests/abc337/submissions/49457958

D問題

D - Cheating Gomoku Narabe

oK個連続させられるかは、各行、各列ごとに独立に考えることが出来る。

ということで、各行、各列の並びについて、K文字の部分文字列を尺取り法で全探索する。部分文字列にxが無ければ.を全てoにすることでK個連続になるので、.の個数が最小の操作回数となる。

こちらも、実装して問題なくAC。39分10秒で4完です。

提出コード

https://atcoder.jp/contests/abc337/submissions/49478063

E問題

E - Bad Juice

問題読んでて、なんか既視感あるかと思ったら、これって毒入りワインを囚人に分ける問題やんね。。

ということで、内容もうろ覚えだったので、まずは「毒入りワイン 囚人」でググってみて、内容を確認。あとは実装するだけです。

で、当初の実装は、

  • MNを2進数表記にした時の文字列長

  • 各ワイン1,2,...,Nについて2進数表記した文字列の右からi桁目に1が立っていたら囚人iに飲ませる

  • 文字列Sを逆順にみた2進数で評価した値が腐ったジュースの番号

という感じで提出しましたが、これがWA。。。よくよく考えると、1本だれにもあげないジュースがあり、結果だれもお腹を壊さなければそれが当たりになるか。。

ということで、

  • MN - 1を2進数表記にした時の文字列長

  • 各ワイン1,2,...,N - 1について2進数表記した文字列の右からi桁目に1が立っていたら囚人iに飲ませる

  • 文字列Sを逆順にみた2進数で評価した値が腐ったジュースの番号。但し、0だった場合、Nを答えとする。

という実装で、なんとかACを取り切ることができましたとさ。67分36秒1ペナで5完。久々の5完は中々達成感があります。

蛇足ですが、よくよく考えると、ワインを0-indexedで考えておけば、もう少し実装が楽になったような。。

提出コード

https://atcoder.jp/contests/abc337/submissions/49494838

F問題

F - Usual Color Ball Problems

とりあえず、時間もあるので問題文に目を通してみたが、なにもわからず。。順位表的にも黄パフォはありそうな感じなので、早々に諦めです。

G問題

G - Tree Inversion

なんかF問題より解かれている感じなので、なんかあるかと勘ぐっては見ましたが、結局、問題すら見ておりません。

これまでの実績

とりあえず、再入水直前まで戻すことができました。

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

総括

今回、久々の5完達成でしたが、これはE問題がたまたま既視感あったからという運用素が強かったかもしれません。

再入水と水レート安定のためには、今後のABCでも安定して5完以上達成できるかというのが、大事かと思いますので、今回の結果に満足せず、精進を重ねていきたいと思います。

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