区間の組み合わせの総数が求まれば、操作の順番の総数はを掛けて得られるので、前者を求めればよい。
を左から走査して、閉じていない区間を保持しながらDPすることを考える。つまり、
文字目までみて、閉じていない区間が個あるような場合の数
というDPをする。文字目がでが偶数、もしくは文字目がでが奇数なら、ここで個の(閉じていない)区間のどれかを閉じるのが正しいので、
文字目がでが偶数、もしくは文字目がでが奇数なら、さらに新しい区間を開始して反転を1増やすべきなので
このDPはの形になっているが、実際にやってみると各について有効なは高々1つしかないことがわかるので、線形で書ける。
コンテスト当時にはまったくわからなくて、解説を読んでも天才解法に見えた問題だった。今見ると、いわゆる箱根駅伝DPを書けばアドホックな考察をしなくても解けてしまうことがわかる。
ただ、のDPが見えているときに、それの延長として想定解が導ける場合とかなり難しい場合があって、コンテスト中にそちらにどこまで頭を使うかは微妙なところとは思う。今出ても、ムーブ次第ではまりかねない気がする。