ここでは各問題に対する自分の考察を書いて行きます.ヒント,と言うタイトルにしようかとも思いましたが,それほどの自信は無いので考察で,そもそもbestからほど遠いものもあるので.自分以外の人が書き足しても全く問題ないです.
まず右下の部分が直線上で縦に並んでいる事に注目して似たようなパーツで取る事を試みましょう. ここで注意するのはa(X):sa(X-1)と言う関数を使わない様にする事と同じパーツで取れるならそうする事の二つです.n歩が書けて便利に見えますがn歩に2Bかかる上に圧縮し辛くなるので結局不利になる事が殆どです.サンプルになりますが右上に行ってから右下,左下,左上と取る手法を取ってみます.パーツはsssrssrsssrrでやってみました. こちら
a:sssrssrsssrr sssssssssrsrslaaaasssaaaarrssrsssssslsrssrraaassssssssrssaaarrsslslarrsslslalsrsrassrsla
圧縮するとこんな感じ
a:srsl sssssaaaaarrssssssssssssrrssssssrsslaarrsssssssssssaarsaarssrraaarssaaalssaarsaarsssssssssssraassrssssssrrssssssssssssraaaaここからはもちろん色々な手法が考えられます.そのうちの一つを紹介します.
5歩をbとおく 最初に5歩進む上に,12歩という大きな歩数があるので数歩分をおいておくのはアリですね すると以下の様になります
a:srsl b:sssss baaaaarrbbssrrbsrsslaarrbbsaarsaarssrraaarssaaalssaarsaarbbsraassrbsrrssbbraaaa
ここで注意するのはsとbが可換だと言う事です.好きに入れ替えましょう aarsという塊がいくつかあるのでこれを置き換えましょう(fとおいたのはcよりも文字が縦に長くてみやすいからです)
a:srsl b:sssss f:aars baaaaarrsbbsrrsbrsslaarrsbbffsrrafsaaalssffbbraassrsbrrssbbraaaa
sとbを適宜入れ替えています.aの多さとrsがいくつかあるのに目をつけて.aarsをaaとrsに分解しましょう.fの上位互換としてf(X):aaXrsとします. 最後のaaaaはf(f())でつくれますね.これを考慮すれば65Bになります.試してみましょう!
その後は2Bセット(bb)が4つあるのですぐに64Bにはなります. また2Bセットとみるのではなく,sとbを上手く入れ替えて3Bのセット(bbr)を3つつくると63Bになります. また2Bセット4つと(br)する事も出来ます.
その後はssがたくさんあるので(b:sssssに二個ありますね)これを置換すれば61B辺りにはなると思います!