2023/7/22に開催された、トヨタ自動車プログラミングコンテスト2023#4(AtCoder Beginner Contest 311)に参加しました。
前回なんとか水パフォを獲得し、レートのほうも着々と入水に近づいてきました。
今回も水パフォを獲得して、入水に近づこうという気持ちで挑みます。
Rated参加します。
— devgenjin77 (@devgenjin77) 2023年7月22日
今回も水パフォ取れるように頑張ります✊
トヨタ自動車プログラミングコンテスト2023#4(AtCoder Beginner Contest 311) - AtCoder https://t.co/nntvcp78Ni
今回の結果
今回は、なんと3完で終了。。
大分爆死したかと思いましたが、なんとか緑パフォには乗ってくれたようです。結構下げはしましたが、まあ致命傷には至らずという感じ。。
3完でした😭😭
— devgenjin77 (@devgenjin77) 2023年7月22日
devgenjin77さんのトヨタ自動車プログラミングコンテスト2023#4(AtCoder Beginner Contest 311)での成績:3811位
パフォーマンス:833相当
レーティング:1148→1120 (-28) :(#AtCoder #トヨタ自動車プログラミングコンテスト2023#4(ABC311) https://t.co/BdGtvir7Gp
振り返り
今回は、大分問題の意図をとらえ損ねた感があります。
A問題
シンプルに実装する方法があるかもしれないが、AC優先で愚直に解くことにする。
を愚直に前から見て、A
, B
,C
それぞれがすでに現れたかを管理しておき、全部現れた箇所を答えとする。
2分23秒で1完。
提出コード
https://atcoder.jp/contests/abc311/submissions/43828465
B問題
全行に対して、列目の値がo
であるかを確認する。あとは、該当する列がどれだけ連続するかを計算する。
6分4秒で2完。個人的には、ちょい早いタイムでした。
提出コード
https://atcoder.jp/contests/abc311/submissions/43833790
C問題
Cからいきなり難易度が跳ね上がった感じ??
とりあえず、制約の中で閉路が1つあるのは分かるが、少なくとも、どの頂点が閉路に属するのかを先に知りたいような気がする。。
ということで、当初はUnion-Findを使って閉路検出をしようかと思いましたが、よくよく考えてみて、強連結成分分解のライブラリを使ったほうがよいか思い方針転換。
C問題にしては、大分難しめの実装かなあと思いましたが、とりあえずSCCを通して、強連結成分成分をそのまま出力する方向で実装。が、、これだと頂点が連結順に並んでなかったかWAを喰らいました。。
頂点を連結順に並び替えることでなんとかAC。26分20秒1ペナで3完です。
提出コード
https://atcoder.jp/contests/abc311/submissions/43848368
D問題
この問題は、誤読でやらかした問題。
当初、プレイヤーが最適の移動方法をとった場合、最大何マス通ることが出来るかを答える問題と思ったため、BFSをどこで打ち切るべきか、プレイヤー毎の情報をどこまで保持しておくべきかが分からずでした。
とりあえず、プレイヤーが通ったマスとその向きを全てプレイヤー毎に保持する方針で実装してみようとするものの、上手くいかず。結局、この問題で大分時間を費やした挙句、解き切る事が出来ずでした。。
コンテスト後、公式解説を見て、やっと自分の誤読に気付く始末。まあ、これは問題を良く読みましょうということで再発防止するしかないのでしょうかねえ。
E問題
D問題がよくわからんので、問題文ぐらいはチラ見したものの、結局よくわからずでした。
F問題
問題すら見れておりません。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
今回は下げという結果。また入水が遠のきました。
総括
今回は、誤読でやらかすというミスもありましたが、E問題でリカバリできなかったのも敗因かと考えます。
安定して高パフォーマンスを取るには、1ミスしても別問題でリカバリできる実力をつけていかないとダメですね。入水に向けて、もっと青Diffぐらいの問題までは挑戦できるように実力をつけていきたいと思います。
ということで、また次回も頑張ります。