ABC312_D – Count Bracket Sequences
問題

D – Count Bracket Sequences
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
提出

Submission #45114508 – UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312)
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
2回目で解けた
メモ化再帰で解けた。
まず、再帰で解くことを考える。
i番目までのcnt=左括弧の数-右括弧の数とすると、cnt>=0でなくてはならない。
cnt>=0を保ったままiを大きくしていく(つまり、右に文字を見ていく)。
最後の文字まで見た時、cnt==0なら括弧列になる。
この関数を$f(i,cnt)$とする。
これを再帰を使って実装すると、NをSの文字列長として、$O(2^N)$になり間に合わない。
そこで、メモをすることを考える。
i番目まで見た時のcntが決まれば、値は一意に決まるのでこれを記録する。
つまり、$dp[i][cnt]= f(i,cnt)$とする。
$i,cnt$は最大で$N$になるので$O(N^2)$となり間に合う。
関連記事
- 【rust】RefCellを理解する
- 最速でzsh+neovim+tmuxのモダンな環境を作る
- AWS未経験からのDevOpsEngineer-プロフェッショナル合格記録
- AWS未経験からのデベロッパー-アソシエイト(DVA)合格記録
- AWS未経験からのSysOpsアドミニストレーター-アソシエイト(SOA)合格記録
- 世界一分かりやすいIPsec
- AWS未経験からのソリューションアーキテクト-プロフェッショナル(SAP)合格記録
- AWS未経験からのソリューションアーキテクト-アソシエイト(SAA)合格記録
- 【AWS】クラウドプラクティショナー(CLF)合格記録
- 入緑しました
- ARC164_B – Switching Travel
- AGC052_A – Make it Zigzag
- ARC137_A – Coprime Pair
- ABC254_E – Small d and k
- ABC128_D – equeue
- ABC318感想戦
- ABC126_E – 1 or 2
- ABC282_D – Make Bipartite 2
- ABC254_D – Together Square

コメント