以上以下の全てのについて,文字目以前の文字を全て英小文字にし,文字目以降の文字を全て数字にするために必要な操作回数を求め,その最小値を求めればよいです.
愚直な実装ではかかりますが,累積和を利用することで高速に求めることができます.
まず,以上以下の全てのについて,以下を求めます.
これはで求まります.
この配列をあらかじめ用意しておくことで,「文字目以前の文字を全て英小文字にし,文字目以降の文字を全て数字にするために必要な操作回数」は,以下の式でで求めることができます.
よって,これを以上以下の全てのについて求め,その最小値を求めればよいので,全体でで答えを求めることができます.