キーエンス プログラミング コンテスト 2021 参加記

2021/1/16に開催されたキーエンス プログラミング コンテスト 2021に参加しました。

atcoder.jp

前回のコンテストでは、少しレートが戻ったものの、まだ茶色転落ギリギリのところにいるのは変わりません。今回も、茶色に落ちない程度に頑張ろうと言う気持ちで臨みました。

今回の結果

で、、今回の結果ですがなんとBしか解けずの1完終了でした。。orz

キーエンス2021結果

キーエンス2021結果

で、結果、茶パフォーマンスの下の方だったので、見事に茶色に転落してしまいましたとさ。ヽ(`Д´)ノウワァァァァァン!!

振り返り

Aでことのほか苦戦して、以降はダメダメでした。

キーエンス2021提出結果

キーエンス2021提出結果

A問題

A - Two Sequences 2

長さNの数列a,bが与えられる。1 \le n \le Nを満たすnについて、max_{1 \le i \le j \le n} a_i b_jを計算する問題。

最初、nを進めるにあたり、直近で使ってたb_iの値がb_nより小さい場合、bの値を更新し、aの値を数列上のa_nまでの最大値として計算する方法を考えていた。

しかし、それだとbの値が低いまま進むとaの値が更新されないということに気づいてしまう。

で、あれこれ工夫して実装をこねくり回してはみたものの、サンプルすら通らない。

結局、1時間以上解けずの状態でB問題を片付けることにしたが、Bを解いた後もこの問題の解法は思いつかず。

苦し紛れの実装で、なんとかサンプルが通るコードを作ったものの、投げてみればWAをくらってしまい、結局時間切れとなりました。

もう少し落ち着いて考えれば、解法も見つかったかもしれませんが、全ては結果論。

まだ実力が足りていないというところでしょう。

B問題

B - Mex Boxes

こちらは、なんとか解法が思いつけたので助かった。(実際は助かってないけどw)

できるだけ多くの箱に、0から順番に数字を入れていき、入れることができる数字が箱の数より少なくなったら、その分が最終的に箱に表示される数値になるので、その分を解答の値に足す。これを全ての箱について表示される数字が確定されるまで繰り返す。

実装では、各数字の出現回数を配列で管理しておけば良い。

以上のやりかたでACをとることができました。

これでなんとか0完は阻止することはできましたが、パフォーマンス的には全然助かってません。ぶっちゃけNoSubの方がレーティング的には良かったのかもしれません。。

C問題

C - Robot on Grid

コンテスト中に問題文をチラ見した程度ですが、なんかDPでグリッド上の各マスへの行き方の場合の数を求めるやつという印象。

過去にも類題をやった記憶があるので、時間があればワンチャンあるかも。という感じでしたが、とりあえずAが全然できてない状態なので、この問題は早々に諦めました。

D問題

D - Choosing Up Sides

問題すら見れていません。

E問題

E - Greedy Ant

問題すら見れていません。

F問題

F - Keyence Repetition

問題すら見れていません。

これまでの実績

2ヶ月ぶり2回目の茶色転落を喫してしまいました。

うーん、どうも上抜けしないねぇ、レートが。

コンテスト実績

コンテスト実績

総括

あまり難易度の高くない問題を落としてしまい、再度の茶色転落となってしまいましたが、これも実力の足りない証拠なのでしょう。

今回の失敗を糧として、明日からまた精進に励みます。

また、次回も頑張ります。