2022/8/27に開催されたAtCoder Beginner Contest 266に参加しました。
前回のABCでは、青パフォが出るという上々の結果でレートを大幅に上げることに成功しました。
今回のABCでは、前回の勢いを落とさない様に、まずはレート以上のパフォーマンスを出そうという気持ちで臨むこととしました。
Rated参加します。
— devgenjin77 (@devgenjin77) 2022年8月27日
前回、青パフォという出来過ぎの内容でした。
今回はレートが上がるぐらいの結果が出れば良いという感じで頑張ります。
AtCoder Beginner Contest 266 - AtCoder https://t.co/qG7AsoGoKk
今回の結果
前回に続いて、5完を達成しました!
水パフォを叩き出すことに成功し、前回に続いてレートはHighestを更新!さらに水色コーダーに近づくことが出来ました!!
5完水パフォで上げ😂
— devgenjin77 (@devgenjin77) 2022年8月27日
この勢いで入水できるように頑張ります✊
devgenjin77さんのAtCoder Beginner Contest 266での成績:1388位
パフォーマンス:1319相当
レーティング:1129→1149 (+20) :)
Highestを更新しました!#AtCoder #ABC266 https://t.co/Nf3Ad56CyC
振り返り
C問題で大きく手こずったことが反省点です。
A問題
文字列の長さをとした時、0-indexedで、文字目を出せば良い。
ということで、実装して1回の提出で問題なくACが取れました。
1分47秒で1完。
提出コード
https://atcoder.jp/contests/abc266/submissions/34369403
B問題
普通に、を計算すれば良いというのであれば簡単だが、そうはいかないと思われる。
とりあえず、上記の要領で計算してみると、やはりがマイナスの時に計算が合わない。
ということで、マイナスの場合は、を足してみることで帳尻を合わせる実装をすることに。
これでなんか嫌なケースがあったら困るなあという気持ちで提出しましたが、なんとか無事ACを取ることができました。
9分2秒で2完。
提出コード
https://atcoder.jp/contests/abc266/submissions/34376842
C問題
苦手意識のある、二次元上の角度を求めるような問題。
解法を検討してみるものの、角度計算の方法をさっぱり忘れており、時間を溶かしてしまう。。
とりあえず10分ほど経ったところで、いったんこの問題からは撤退。D問題以降に着手することにしました。
ーーー
で、D、Eと解いたところで戻ってきたC問題。とりあえず、平面上の3点間の角度を計算する方法をググればなんとかなるかというところで、調査を開始。
すると、外積を計算すればよいとかなんとか説明している、いい感じの計算できるコードを見つけたので、とりあえずコピペで自分のコードに実装。
あとは、A→B→C、B→C→D、C→D→A、D→A→Bのそれぞれ4パターンで3点間の角度を計算し、判定することでなんとかACを取り切ることが出来ました。
88分58秒で5完。自身の知識不足のせいで、やたらと時間がかかったのですが、なんとか5完を確保することができました!
提出コード
https://atcoder.jp/contests/abc266/submissions/34401948
D問題
多分、DPすればいい的な問題。ということで、以下のDPを構築してみる。
時刻の時点で、地点にいる時に得ることができる最大の得点。
遷移は、 と計算し、その時点で、すぬけ君を捕まえることができるならば、得点をプラスする。
と、こんな感じで実装したら、サンプルの1部が合わず。。
調べてみると、時刻の時点で地点にいる前提を考慮しないとダメということみたい。
ということで、DPの初期値を、と最初に点とっていることとし、遷移の処理で、得点がのケースを無視して、最後に点引くという小細工をすることで対処してみる。
とこんな感じでサンプルが通る実装を作り、提出したら、なんとかACをとることができましたとさ。
39分31秒で3完。とりあえず、C問題を抜かしても大怪我はしなさそうな感じです。
提出コード
https://atcoder.jp/contests/abc266/submissions/34389206
E問題
数回前のABCにスゴロクのDPをするような問題があり、それを復習している時に、期待値の計算とかを勉強してたので、多少とっかかりやすかった問題。
とりあえず、立てた方針としては、この問題の答えをとした時、回目に出た目がより大きい場合、ゲームを終了させ、そうで無い場合は期待値が取れるものとして計算することに。
で、結果サンプルが無事通る実装ができたので提出したら、一発でACを取ることが出来ましたとさ。
58分51秒で4完。これでなんとか緑パフォ上位は行けそうかという印象でした。
提出コード
https://atcoder.jp/contests/abc266/submissions/34394869
F問題
F - Well-defined Path Queries on a Namori
一応問題文を見て、検討したものの、いい感じの解法は思いつかず。
とりあえず、10分ほど程度経過したところで、この問題を諦め。
多少は順位が上がるだろうということで、C問題に取り組むことにしました。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
前回につづいて、レートは大きく上昇。水色コーダーへ、また一歩近づくことが出来ました。
総括
今回は、C問題で苦戦したものの、なんとか優先順を決めて対応したことで、最低限の結果が確保できたのが良かったかと思います。
今後のABCでは、水色パフォ以上の結果を出し続けることを目標とし、青Diff以下の問題までは過去問の精進に取り組むという感じで進めていこうと思います。
ということで、また次回も頑張ります。