Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 244

5完。

各問題

A - Last Letter

cout << S[N - 1] << endl;

B - Go Straight and Turn Right

現在の向きと座標を持って、愚直にシミュレートします。

C - Yamanote Line Game

ABCで初めてインタラクティブ問題解いた気がする...。

どの数が宣言済みかを保持しておいて、まだ宣言されていない数を返します。やること自体はC問題のレベルじゃないので、インタラクティブってだけでここに置かれた感じ?

D - Swap Hats

並べ方は6パターンありますが、数巡シミュレートするとそのうちの3こずつが交互に現れるだけとわかります。よって、偶数回目に現れる3パターンのうちのどれかならYesでそうでないならNoです。

E - King Bombee

制約がいかにもDPっぽくて、実際DPで解けます。

DP[K][N][2(Xの出現回数のパリティ)]DP[0][S][0]=1 / その他 = 0を初期値として木上で配るDPをすればよいです。Xを通るときパリティが変わることに注意です。

F - Shortest Good Path

たとえば111なら110, 101, 011のうちから一番少なくて済むものを選べばよさそう、それを000から再帰的にやればよさそうと思って再帰を書いていたのですが、1が少ないものから順に処理する必要があるのでBFSじゃないか?と気づいたのが終了15分ほど前で、必死に実装を書き直すも間に合わず...。もったいなかった。

まとめ

先週失ったレートをあらかた取り戻したのでよしとするべきか、見えてた6完をみすみす逃してしまったことをだめとするべきか...。

f:id:mdstoy:20220320231632p:plain