2023/1/15に開催されたAtCoder Beginner Contest 285に参加しました。
2023年のRatedコンテストは、ここまで2戦2敗という体たらく。
このままずるずると負け続けるのは、さすがに精神衛生上よろしくないということで、今回はまず連敗を止めようという気持ちで臨むことにしました。
Rated参加します。
— devgenjin77 (@devgenjin77) 2023年1月15日
とりあえず連敗を止められるように頑張ります。
AtCoder Beginner Contest 285 - AtCoder https://t.co/tMjGKhijdw
今回の結果
先週のABCと同じく、4完で終了となりました。。。
しかしながら、順位は1000位近辺という好位置で水パフォが出てくれました。なんとか、連敗脱出成功です。
4完でしたが、タイムのおかげで水パフォ❗️
— devgenjin77 (@devgenjin77) 2023年1月15日
なんとか連敗を止めました
来週も頑張ります。
devgenjin77さんのAtCoder Beginner Contest 285での成績:1038位
パフォーマンス:1308相当
レーティング:1112→1133 (+21) :)#AtCoder #ABC285 https://t.co/CZMl1VDiNJ
振り返り
D問題がパッと見えてくれたのが、勝因のようです。
A問題
A問題から、いきなりグラフ問題??と思ったが、要はが辺で直接つながっているかを見るだけということで、まあA問題の難易度の範囲なのかなと。
解法としては、問題図にあるツリーの親子関係の特徴を見て、かならYesという感じで実装。問題なくACが取れましたとさ。
1分55秒で1完。
提出コード
https://atcoder.jp/contests/abc285/submissions/38042446
B問題
問題文の説明が回りくどすぎて、何を言っているか良くわからんという状態でしたが、サンプルの説明などを見てなんとか実装のイメージができました。
チェックする文字の間隔とチェック開始位置で二重ループを行い、文字が一致したところで内側のループを抜けるような感じで実装。サンプルと合ったので、そのまま提出してACが取れましたとさ。
9分53秒で2完。
提出コード
https://atcoder.jp/contests/abc285/submissions/38048553
C問題
文字列を26進数として解釈し、10進数の数値に変換すればよい。
最初、実装をバグらせてしまい、サンプルを通すのに少し苦労しましたが、なんとかサンプルが通る実装を完成させて提出。問題なくACが取れました。
17分8秒で3完。
提出コード
https://atcoder.jp/contests/abc285/submissions/38052653
D問題
答えがYesとなるサンプルとNoとなるサンプルの違いを見てると、どうも変更したい名前どうしでループが発生するとNoになるみたい。
ということは、Union-Findを使ってサイクルが検出できればNo。あと名前の文字列がノードになるが、HashMapを使って各ユーザー名に対してユニークにIDを振ってやればグラフっぽく扱えるかと。
この解法でいけるかどうか、半々ぐらいの気持ちで実装してましたが、提出してみると一発でACが取れました!
27分7秒で4完。このD問題が解けたところで、なんと順位は670台という好位置に。すこしエスパー気味の考察でしたが、早めに解けてよかったです。
提出コード
https://atcoder.jp/contests/abc285/submissions/38056832
E問題
順位表のAC数を見ると、大分手ごわそうな問題のように思える。。
まず、制約からのDPで解くのかという感じだが、肝心のDPの定義が思いつかない。
ネックになることとして、先週の最後の休みの位置が確定しないと一週間の初日の計算値が確定しないだろうとか、いろいろ悩んでいました。
結果としてはこの問題で時間を使い切ってしまい終了。
あとで解説を見ると、初日を休日として確定させておくというオチ。こんな発想も浮かばないようではダメだという感じです。
こういう発想を出すためには、類題を多く取り組まんといかんのかなあ。
F問題
F - Substring of Sorted String
E問題が解けないので、一応F問題もチェックしてみましたが、手も足も出ず。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
2023年初勝利!内容はともかく、連敗を止めることができてホッとしたというのが正直なところです。
総括
今回は、D問題まで比較的早めに解けてくれた効果でなんとか高いパフォーマンスが出てくれました。
しかしながら、本当は、5完、6完を達成して高パフォーマンスを取って勝つというのが理想なので、今回の内容で満足はできません。
また、次週のコンテストに向けて、水Diff、青Diffの問題に取り組んで精進していこうと思います。
ということで、また次回も頑張ります。