最近、指定した回数だけ文字列を複製する必要がありました。文字列 " " のコピーが 5 つ必要で、エディターbacon
に " " が 1 行あるとします。bacon
だから私はこれから始めます:
bacon
そしてこれで終わります:
bacon
bacon
bacon
bacon
bacon
コピー、貼り付け、削除という 3 つの「アトミック」操作も定義しましょう。「コピー」では任意の数の行をコピーできます。「貼り付け」では最後にコピーしたものを貼り付け、「削除」では行を削除します。したがって、3 行の " bacon
" がある場合:
bacon
bacon
bacon
そして、10 行の " bacon
," が必要です。次のようなことができます。
copy 2 | lines of bacon: 3
paste 2 | lines of bacon: 5
copy 5 | lines of bacon: 5
paste 5 | lines of bacon: 10
しかし、 i行とj行 ( i ≤ j )が与えられた場合、必要な「アトミック」操作の最小数はいくつになるでしょうか? この問題に適用されるアルゴリズム手法はありますか? それとも、明らかな何かを見落としていますか?