トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)参加記

2022/11/26に開催された、トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)に参加しました。

atcoder.jp

先週のARCでは、水パフォ上位を取ることができ、レートの方もHighest付近まで戻すことができました。

今回は、この勢いで再度入水を狙うべく、レートを上げられるぐらいのパフォーマンス狙いで臨むこととしました。

今回の結果

しかしながら、今回は3完で終了。うーむ、まったく伸びないねえ。

ABC279結果
ABC279結果

で、二回前のABCと同じく、茶パフォを食らってしまい、レートを大きく下げる結果になってしまいましたとさ。

振り返り

C問題までは順調でしたが、D問題で事故ってしまいました。

ABC279提出結果
ABC279提出結果

A問題

A - wwwvvvvvv

文字列Sの各文字について、v の場合は1w の場合は2を答えに足して出力すればよい。

あとは実装して、問題なくACを取ることができました。

1分15秒で1完。

提出コード

https://atcoder.jp/contests/abc279/submissions/36792578

B問題

B - LOOKUP

問題を一読したところ、Javaの場合はStringクラスのcontainsメソッドが使えるかなと実装してみたところ、サンプルが通ったのでそのまま提出。

ジャッジも問題なく通り、一回でACを取ることができましたとさ。

2分46秒で2完。個人的には、だいぶ早いペースで進んでいます。

提出コード

https://atcoder.jp/contests/abc279/submissions/36795826

C問題

C - RANDOM

STについて、文字列を列ごとに取り直して、それぞれソートし、配列が一致したらYes、それ以外はNoという感じで実装。

少し実装に手間取ったものの、なんとかこちらも一発でACを取ることができましたとさ。

11分7秒で3完。いままでのABCと比べると、だいぶ早いペースで3完まで辿り着けました。

提出コード

https://atcoder.jp/contests/abc279/submissions/36803367

D問題

D - Freefall

一読した印象としては、二分探索を使うのかなあという感じ。

が、多分この関数は下に凸になるイメージだろうから、ある探索値に対する関数の解に対して、探索値をプラス1した値に対する関数の解増減で、左右を詰めていくという感じの実装にした。

で、サンプルもそれなりの結果になったので、出してみたら、これがWA。。。

誤差の影響かと思い、出力にBigDecimalを使ってみたり、解の近傍±1000ぐらいを探索してから答えを出したりしたものの、一向にWAは治らず。

あれこれしてたら、残り時間も20分を切ったので、仕方なくこの問題は諦めることにしました。

終了後に解説などを見ると、どうも三分探索というものを使う必要があるということ。

不勉強につき、まったくこれを知りませんでした。また復習がてら勉強していきます。

E問題

E - Cheating Amidakuji

まず、問題文を理解するところから時間が掛かってしまったこの問題。

とりあえず、時間をかけて問題の意図を把握することはできたものの、結局どうすれば良いかは導き出せず。

結局、ここで時間切れとなってしまいましたとさ。

F問題

F - BOX

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

G問題

G - At Most 2 Colors

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

Ex問題

Ex - Sum of Prod of Min

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

これまでの実績

もう何回目になるだろうか。またまた、水色目前でレート暴落というのを繰り返しています。

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

総括

今回は、茶パフォという残念な結果でした。

振り返れば、D問題は、もう少し検索力を上げればなんとか本番中に解けたような気もするし、E問題は、まず紙上でシミュレーションするなどすれば、手段は見えてきたのかもしれません。

ただ、現状では、このまま緑の中盤あたりをうろちょろするのが関の山かと。今後に向けて精進のやり方を見直してみようと思います。

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