Official
D - Penta-Queue Editorial
by
D - Penta-Queue Editorial
by
snuke
各キューが sorted な状態をキープすることで、pop クエリにいつでも対応が可能です。
sorted な \(2\) つのキュー \(A,B\) を、\(|A|+|B|\) 回の移動操作でマージすることができます。(\(B\) を自分自身に移動させることで一周分 rotate しつつ、適切なタイミングで \(A\) の要素を移動させる)
以下のルールで操作を行えば良いです。
- キュー \(i\) のサイズが \(9^{i-1}\) 以上になったらキュー \(i+1\) にマージする。
\(Q<9^4\) なのでキュー \(4\) のサイズが \(9^4\) 以上になることはありません。 移動操作回数の合計の上限は、以下のように見積もることができます。
- キュー \(i\) からキュー \(i+1\) へのマージに使用する移動操作回数の合計は \((1+2+\ldots+9)9^i \times (Q/9^{i+1}) = 5Q\)
- つまり、総移動操作回数は \(20Q\) 回以下
posted:
last update: