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

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

atcoder.jp

レート推移の方は緑の中盤での停滞がつづいており、正直マンネリ化しているところが否めない状況です。しかしながら、日々自分なりに精進は継続しているところなので、早く水色になれるようにということで、今回も水パフォ目標で挑みます。

今回の結果

今回は4完という、なんとも中途半端な結果で終了。

ABC298結果
ABC298結果

で、今回はなんとコンテスト中にDDoSの影響があったということで、Unratedになってしまいました。結局、今回のパフォーマンスは分かりませんでしたが、多分順位から予想すると、そんなにレートは動かなかったんだろうと思います。

振り返り

E、F問題は、既視感があったのですが、結局解き切ることができませんでした。

ABC298提出結果
ABC298提出結果

A問題

A - Job Interview

愚直にループで回して、oがあるか、xがないかを判定すればよい。

1分57秒で1完。

提出コード

https://atcoder.jp/contests/abc298/submissions/40635021

B問題

B - Coloring Matrix

行列の回転処理というものを事前に準備してなかったので、自力で回転を実装することに。

で、いざ0-indexedで実装してみると、バグらせてしまったので、1-indexedで書き直したり、また判定処理がそもそも誤っていたりで色々実装に手こずってしまいました。

結局、12分38秒で2完。少し時間かかりすぎだなあ。

提出コード

https://atcoder.jp/contests/abc298/submissions/40643273

C問題

C - Cards Query Problem

なんで、これがCに居るの?という違和感を覚える問題。やたらと実装が面倒だなあという感じです。

とりあえず、グラフの隣接リストを作る要領で、箱の番号と数の対応を管理するリストと、数に対する箱の番号の対応を管理するリストを作成。クエリ1では、両方のリストを更新する要領で実装。

あとは、クエリ2と3がやってきたときに、リストから取り出した値をソートもしくはシングル化して出力という感じで実装しました。

で、提出してみたら、とりあえずACにはなったものの、実行時間は1800msというTLEギリギリのタイム。。

想定解法とは少し違ってたかも知れません。とりあえず念の為という感じで入出力を高速化しておいたのが、結果的に良かったというところでした。

26分44秒で3完。

提出コード

https://atcoder.jp/contests/abc298/submissions/40650343

D問題

D - Writing a Numeral

以下の要領で実装。

  • 答えの変数Aおよび、文字列Sを、それぞれ1で初期化する。

  • クエリ1では、Sの末尾にxを追加。Aは10倍してからxを足して、998244353で割った余りを取る。

  • クエリ2では、Sの先頭の数字を削除。Aから、先ほど削除した数の10^{|S|}倍した数を998244353で割った余りを引く。

  • クエリ3では、Aを出力する。

これで、なんとかACを獲得することができました。42分12秒で4完です。

提出コード

https://atcoder.jp/contests/abc298/submissions/40655335

E問題

E - Unfair Sugoroku

多分DPで計算するやつだという感じ。

サイコロを振るのは、最大N回になるので、サイコロを1回〜N回振った時に先手がNに居る確率と後手がNに居る確率から勝率を積算して計算するのかなあという感じで実装しましたが、結局サンプルが合わず。。結局解法が見えないまま、時間切れを迎えてしまいました。

解説を見てみると、結局DPで計算するのは間違ってなかったのだが、考え方が全然間違ってた模様。なんか、過去問で似たような問題があったような気がしますが、思い出せません。

F問題

F - Rook Score

一応、問題はチラ見しました。

多分、Sの計算は、行の和と列の和を足した後で、指定した行と列のマスにある数字を引く感じになるが、結局これをどうやってまとめ切るかというところが思いつかず。

なんかこれも既視感のある問題でしたが、解き切ることは出来ずでした。

G問題

G - Strawberry War

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

Ex問題

Ex - Sum of Min of Length

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

これまでの実績

今回、Unratedになったので、レート変化はありませんでした。

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

総括

今回も水Diff周りの問題が解けずという、いつもの残念な結果となりました。

この辺の問題は、典型として過去に同種の問題も出てたかと思いましたが、ちょっとまとめきれていない感じですね。今後は、過去問の情報整理を進めて、類似問題が出題された時に備えていきたいと思います。

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