2022/7/31に開催された、第三回日本最強プログラマー学生選手権-予選-(ABC262)に参加しました。
昨日のARCは所用で出れず。よって今週はこのABCのみでレートが動くということになるので、今回はなんとしてもレートを上げていきたいところ。
とりあえず、目標水パフォで臨むこととしました。
Rated参加します。今回こそ水パフォ取れるように頑張ります✊
— devgenjin77 (@devgenjin77) 2022年7月31日
第三回日本最強プログラマー学生選手権-予選-(ABC262) - AtCoder https://t.co/ESgLGu8U4u
今回の結果
なんとか4完を確保しました。
で、なんとかギリギリでしたが、宣言通り水パフォを取得することが出来、レートを上げることに成功しました。
4完水パフォで上げ!来週も頑張ります✊
— devgenjin77 (@devgenjin77) 2022年7月31日
devgenjin77さんの第三回日本最強プログラマー学生選手権-予選-(ABC262)での成績:1572位
パフォーマンス:1211相当
レーティング:1035→1054 (+19) :)#AtCoder #第三回日本最強プログラマー学生選手権-予選-(ABC262) https://t.co/aFuszG5ZiN
振り返り
凡ミスでペナルティを重ねてしまい、大分パフォーマンスを落としてしまいました。
A問題
めっちゃ効率的な解き方があるかもしれないかと思ったが、とりあえず早く解くために愚直に実装することに。
のをとって、あとは普通に場合分けをする実装を行い、提出。問題なくACが取れました。
2分7秒で1完。
提出コード
https://atcoder.jp/contests/abc262/submissions/33658725
B問題
グラフ上の連結を隣接リストで扱い、あとは3重ループでカウントしていけば良い。
実装方針は早めに固まったため、問題なくACを取り切ることができました。
6分14秒で2完。
提出コード
https://atcoder.jp/contests/abc262/submissions/33663510
C問題
を左から順に固定して考えていくとして、の場合は、それより右に存在するとなるが対象となる。
よって、前計算で、となる項をあらかじめカウントして累積和をとっておき、計算することで対処する。
の場合は、かどうかを判定し、Trueならカウントにプラス1する。
上記のような感じで、問題なくサンプルが通ったので提出したら、結果はWA。。。
原因が全く分からずで、10分近くあれこれ悩みましたが、結局カウント用の変数宣言をintからlongに変えてみることで、AC。。。
29分17秒1ペナで3完。もう2年近く競プロやっているが、こんな凡ミスがまだ治らないのかと、少しショックを受けました。。
提出コード
https://atcoder.jp/contests/abc262/submissions/33673610
D問題
大分難易度が高そうだが、modの合計を管理してDPすることで、なんとかやっていけそうな感じがする問題。
ということで、の項を何個選ぶかというのを固定して、以下のDPを考えてみる。
- 個選ぶ時、の項を個採用して、がになる時の通り数。
このDPを、からのケースでそれぞれ実行していく。
あとは、各DPで、から取得した値を選ぶかどうかや、最初の一つ目として選ぶ場合の遷移を実装。とりあえずサンプルまでは通るプログラムができました。
で、ジャッジに投げてみると、半分以上がWA。。。
本気で何が間違っているのかが全然分からずで、あれこれ試行錯誤してみるも、WAが取れずで傷口を広げるばかり。
で、ふと問題文をじっくり読んでみると、で割った余りが答えになるやつだと今更気づく!
んで、の計算をまじめにやってみたら、無事ACを取ることが出来ましたとさ。。
C問題の凡ミスもショックでしたが、これは問題文をちゃんと読めば防げるミスなので、ショックを通り越して自分でも呆れてしまいました。。
84分20秒4ペナで4完。とりあえず、順位は1400台に乗ったので、なんとかレート上昇は望めそうなのが、せめてもの救い。
提出コード
https://atcoder.jp/contests/abc262/submissions/33685786
E問題
順位表のAC数をみると、多分青パフォぐらいの難易度かと。
問題文を一読しましたが、何も分からずで降参。このまま時間切れとなりました。
F問題
問題すら見れておりません。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
一応、レートは上昇しましたが、ここから上に抜けるのが、しんどいんだよなあ。
総括
今回は、ギリ水パフォが取れましたが、CとDの凡ミスがなければ、もっと上のパフォーマンスが取れていたはず。実力不足というよりは、注意不足が原因でパフォーマンスを落とすのは大分勿体無い感じがしますね。
この手のミスは、以前から、ちょくちょくやらかしているのですが、どうすれば無くせるんだろうか。次回に向けて、少し考えてみたいと思います。
ということで、また次回も頑張ります。