ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

AOJ 2443 Reverse Sort

問題
提出コード

解法

いろいろ嘘枝刈りBFSぽいことを考えましたが、全く解けませんでした…

AOJ 2443. ReverseSort - うさぎ小屋

↑こちらを参考にしました。
前から貪欲に揃えていくと、確実にN-1回以内で揃える事ができます。 操作回数が増えると、たどり着ける状態が指数的に増えていきます。
なので、前(後ろ)からだけ見ていくのでは、最終的な状態が増えすぎてしまいます。
そこで、前から半分だけ、後ろから半分だけを見て、どちらからも行けるような状態が存在するかどうか、を調べます。
ということで、N/2手だけ動かしてたどり着ける状態(と手数)を両方調べ、どちらにも存在する状態が無ければN-1、そうでなければそれぞれの手数の和の最小値を求めればよいです。

感想

半分全列挙の経験があまりなかったので、面白かったです。勉強になりました。