Toy と帽子と ADP BE

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

日鉄ソリューションズプログラミングコンテスト2023(AtCoder Beginner Contest 303)

5完

各問題

A - Similar String

気合で if 文の条件を書きました。s=t or (s='0' and t='o') or (s='o' and t='0') or (s='1' and t='l') or (s='l' and t='1')

正しい組をあらかじめ配列かなんかに入れておいてループで回すがよいです。

B - Discord

全部愚直にチェックすればよいです。

C - Dash

素直に書かれていることをシミュレートする実装を書くだけです。としか言いようがなくない?

D - Shift vs. CapsLock

D は DP の D。

n 文字目を CapsLock が ON と OFF のいずれかからスタートしたときどうなるか、で DP すればよいです。

E - A Gift From the Stars

まず星の中心を求めます、Tについて元の星の中心は3つおきに出現するので、どこか任意の次数1の頂点から dfs して中心を特定すればよいです。

中心が特定出来たら T について両端に星の中心を含まない辺を除外したグラフを作って、それぞれの星のレベルをチェックすればよいです。Union-Find (ACL の dsu) でやれば簡単にできます。

F - Damage over Time

なにもわからない...。

まとめ

E にグラフが来るという、自分にとってサービスセットだったはずなのに、星の中心を求める方針で右往左往してしまったので大してパフォが上がらず残念な気持ち...。

あと function<void(bool)> = func[&](int i) がエラーになってくれなくて(それはそう)、想定外の動作しているのに気づかずめちゃくちゃはまってしまいました。