AtCoder Regular Contest 136 A問題 A ↔ BB
問題
提出解答
問題の概要
からなる長さ の文字列 が与えられる. に対して, 以下の操作を 回以上行ってできる文字列のうち, 辞書式最小のものを求めよ.
- にある を に置き換える.
- にある を に置き換える.
制約
- は からなる長さ の文字列
解法
まず, 操作によって, が変化に寄与することはない. そこで, を で区切って, のみからなると考えても良い. また, は よりも辞書式の意味で小さいので, 区切った文字列内での最小化を目指す.
辞書式の意味で, は よりも前である. そして, を 点, を 点としたとき, からなる文字列において, 同じ点数である2つの文字列は操作によって互いに推移可能である.
点の文字列において, 辞書式最小なのは, として,
- が奇数のとき, .
- が偶数のとき, .
である.
これをそれぞれ区切った文字列ごとにみて, を結合させることにより, 計算量は である.