2022/11/26に開催された、トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)に参加しました。
先週のARCでは、水パフォ上位を取ることができ、レートの方もHighest付近まで戻すことができました。
今回は、この勢いで再度入水を狙うべく、レートを上げられるぐらいのパフォーマンス狙いで臨むこととしました。
Rated参加します。
— devgenjin77 (@devgenjin77) 2022年11月26日
今回もレートを上げて、水色に近づけるよう頑張ります✊
トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279) - AtCoder https://t.co/P2X7YWv4Uo
今回の結果
しかしながら、今回は3完で終了。うーむ、まったく伸びないねえ。
で、二回前のABCと同じく、茶パフォを食らってしまい、レートを大きく下げる結果になってしまいましたとさ。
3完で冷え😭😭😭
— devgenjin77 (@devgenjin77) 2022年11月26日
devgenjin77さんのトヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)での成績:2893位
パフォーマンス:760相当
レーティング:1165→1130 (-35) :(#AtCoder #トヨタシステムズプログラミングコンテスト2022(ABC279) https://t.co/gDqtO8CeJd
振り返り
C問題までは順調でしたが、D問題で事故ってしまいました。
A問題
文字列の各文字について、v
の場合は、w
の場合はを答えに足して出力すればよい。
あとは実装して、問題なくACを取ることができました。
1分15秒で1完。
提出コード
https://atcoder.jp/contests/abc279/submissions/36792578
B問題
問題を一読したところ、Javaの場合はStringクラスのcontains
メソッドが使えるかなと実装してみたところ、サンプルが通ったのでそのまま提出。
ジャッジも問題なく通り、一回でACを取ることができましたとさ。
2分46秒で2完。個人的には、だいぶ早いペースで進んでいます。
提出コード
https://atcoder.jp/contests/abc279/submissions/36795826
C問題
、について、文字列を列ごとに取り直して、それぞれソートし、配列が一致したらYes
、それ以外はNo
という感じで実装。
少し実装に手間取ったものの、なんとかこちらも一発でACを取ることができましたとさ。
11分7秒で3完。いままでのABCと比べると、だいぶ早いペースで3完まで辿り着けました。
提出コード
https://atcoder.jp/contests/abc279/submissions/36803367
D問題
一読した印象としては、二分探索を使うのかなあという感じ。
が、多分この関数は下に凸になるイメージだろうから、ある探索値に対する関数の解に対して、探索値をプラス1した値に対する関数の解増減で、左右を詰めていくという感じの実装にした。
で、サンプルもそれなりの結果になったので、出してみたら、これがWA。。。
誤差の影響かと思い、出力にBigDecimal
を使ってみたり、解の近傍±1000ぐらいを探索してから答えを出したりしたものの、一向にWAは治らず。
あれこれしてたら、残り時間も20分を切ったので、仕方なくこの問題は諦めることにしました。
終了後に解説などを見ると、どうも三分探索というものを使う必要があるということ。
不勉強につき、まったくこれを知りませんでした。また復習がてら勉強していきます。
E問題
まず、問題文を理解するところから時間が掛かってしまったこの問題。
とりあえず、時間をかけて問題の意図を把握することはできたものの、結局どうすれば良いかは導き出せず。
結局、ここで時間切れとなってしまいましたとさ。
F問題
問題すら見れておりません。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
もう何回目になるだろうか。またまた、水色目前でレート暴落というのを繰り返しています。
総括
今回は、茶パフォという残念な結果でした。
振り返れば、D問題は、もう少し検索力を上げればなんとか本番中に解けたような気もするし、E問題は、まず紙上でシミュレーションするなどすれば、手段は見えてきたのかもしれません。
ただ、現状では、このまま緑の中盤あたりをうろちょろするのが関の山かと。今後に向けて精進のやり方を見直してみようと思います。
ということで、また次回も頑張ります。