問題
$ N $ 個の草が一列に並んでいて、$ 1 $ から $ N $ までの番号がつけられています。
各草の高さは $ 1 $以上の整数値で表され、それについて次の情報 $ S_1,S_2,…, S_{N-2} $ が分かっています。
🔹$ S_i = A $ のとき、草 $ i $ より草 $ i + 1 $ の方が高い。
🔹$ S_i = B $ のとき、草 $ i $ より草 $ i + 1 $ の方が低い。
$ N $ 個の草の高さの合計として考えられる最小値を求めて下さい。
[制約]
🔹$ 2 \leqq N \leqq 3000 $
解き方・ソースコード
この問題は、まず $ 1 $ から $ N $ まで $’A’$ の連続回数を数えます。
次に$ N $ から $ 1 $ まで $’B’$ の連続回数を数えます。
そしてそれぞれの連続回数の大きいほうを選択し、合計したものが各草の高さの合計として最小となります。
[Google Colaboratory]
1 | #--------- 入力例 ----------- |
[実行結果]
ret1 [1, 2, 3, 1, 2, 1, 1] ret2 [1, 1, 2, 1, 3, 2, 1] ret3 [1, 2, 3, 1, 3, 2, 1] 解: 13
草の高さの合計値として考えられる最小値は 13 ということが分かりました。