反転

AかBからなる文字列が有る。Aを反転するとBになり、Bを反転するとAになる。
連続するKの部分列は一度に反転できる。全てAにするために必要な最小操作回数Mと、そのときの最小のKを出力せよ。

  • 同じ領域を二度以上反転する必要はない
  • 反転の順序は結果に関係しない

以上より、問題の性質を考えてみると、

  • 先頭がAなら先頭を含む部分列は1度も変える必要がない

と言える。何故なら先頭からKまでの部分列は1つに限られるからである。逆に先頭がBであれば、先頭を含む部分列は必ず反転しなければならない。
先頭がAであれば、先頭を取り除いた文字列を考えるだけで良くなる。これを繰り返すと解が求まる。またこのことから操作の順を無視すると全てAにする方法は一意である事がわかる。(以下わからない)