D - Penta-Queue 解説 by maspy


push されるたびに,ある \(k\) を選んで次を行うとします.

  • キュー \(1,2,\ldots,k\) の中身をマージして,キュー \(k\) に降順に並ぶようにする.
  • ただし,\(2\) 回に \(1\) 回は \(k\geq 2\) が選ばれるなどの制約を適当につける.

コストは,キュー \(1,2,\ldots,k\) の中身の要素数の総和です.


この戦略は,\(1,2,3,4,5\) からなる長さ \(5000\) の数列として書けます.コストの最悪ケースは pop クエリが最後まで来ない場合で,実際にクエリを受け取らなくてもこのコストを計算できます.また戦略は,一度 \(Q=5000\) 用に求めたものをソースコード埋め込んで使うことができます.

あとは適当な方法でこの列を良くしましょう.適当な山登り法でも,コスト \(60000\) 程度まではすぐに到達しました.AHC に慣れている方はもっと簡単に AC を得たのではないかと思いますが,どうだったでしょうか.


投稿日時:
最終更新: