れとろのメモ置場

とあるSEのメモ置場

Sky株式会社プログラミングコンテスト2023(AtCoder Beginner Contest 289)

Sky株式会社プログラミングコンテスト2023(AtCoder Beginner Contest 289)に参加しました。

結果

A,B,C,Dの4問正解でした。

D問題までは30分かからないくらいで解き終わったのにE問題がさっぱりわからなかった。
とりあえず愚直に解くように実装してみたけどそれでもだめだった...

A - flip

問題文の通りに処理する。
文字列を先頭から見ていって1なら0を、0なら1を出力させれば良い。

文字列の操作と条件分岐がわかれば解ける問題。

[B - V

漢文に返り点がある時の読み順を答える問題。 問題文の通りに実装できれば解けそう。

返り点があるときは下から上に読むので、スタックに入れていって返り点が出てこなくなったらスタックの中身を順番に取り出していけば良いなあと思ったので、スタックを使って実装した。

C - Coverage

bit全探索で全通り確認して条件を満たす場合を数え上げる問題。

条件:選んだ集合を合わせると1~Nまでのすべての数を含む

M個の集合に対してbit全探索で選ぶ選ばないを決めて、選ぶ集合をマージしていく。最終的に集合のサイズがNになるかどうかで条件を満たしているかどうかを判断した。

D - Step Up Robot

DPの中だと割りと簡単な方な気がする問題。モチの設定がなかったらすごく初歩的なDPの問題。

DP[i段目]=たどり着ける・たどり着けない として、 今i段目にいるときにi+A _ {x}にたどり着ける としてDP[0]から順番に更新していきDP[X] がどうなっているかを答える。 i段目にモチがある場合は移動できないので、その段の処理はスキップする。