Weitere ähnliche Inhalte
Ähnlich wie Pietで競プロしよう (20)
Pietで競プロしよう
- 8. 自己紹介
id: base64
名前: ひみつ
身分: 京大工学部計算機科学コース新4回生、39代会計
活動: ボドゲ、競プロ、(Piet)
Twitter: @basemusi とか
- 20. rollとは
(1, 2, 3, 4, 5, 6)
(4, 1)roll ↓ 末尾4要素を1回転
(1, 2, 6, 3, 4, 5)
(2, 1)roll ↓ 末尾2要素を1回転
(1, 2, 6, 3, 5, 4)
(3, 2)roll ↓ 末尾3要素を2回転=(3, 1)roll2回
(1, 2, 6, 5, 4, 3)
この操作を高速に処理したい
- 22. 高速にrollを処理する
平衡二分木の不思議な力でrollがO(logN)で可能
平衡二分木を用いると数列のsplitとmergeが数列長Nに対しO(logN)で可能
(1, 2, 3, 4, 5, 6)を(5, 2)rollする場合
(1), (2, 3, 4), (5, 6)にsplit
(1)と(5, 6)をmerge
さらに(2, 3, 4)をmergeして
(1, 5, 6, 2, 3, 4)が得られる
ただし、それでも他の言語より結構処理が重いので注意
誰かが「償却O(1)でrollできそう」って言ってたので誰かやってくれ!