きろく

特筆すべき記録のまとめ

JOI '09 予選:5- シャッフル

問題

www.ioi-jp.org

解法

カードの枚数に対してシャッフルの回数がとても少ないので,ほとんどバラバラにならない.なので,連続する数字が書かれるカードを1つの区間としてもっておき,その区間をシャッフルによって切ったり,並び替えたりすることにする.

例えば,n = 10 として,初めにシャッフル (3, 5) をするとき,3つの区間 {[1, 3]}, {[4, 5]}, {[5, 10]} が出来,カード全体は {[5, 10]}, {[4, 5]}, {[1, 3]} となる.その後シャッフル (2, 7) をすると,5つの区間 {[5, 6]}, {[7, 10], [4, 4]}, {[5, 5], [1, 3]} が出来,カード全体は {[5, 5], [1, 3]}, {[7, 10], [4, 4]}, {[5, 6]} となる.これを全てのシャッフルについて同様に処理すればよい.O(m^2).

解答

atcoder.jp

一発 AC 出来たのでよかった.

f:id:babcs2035:20190315143815p:plain