はまやんはまやんはまやん

hamayanhamayan's blog

競技プログラミングにおける平方分割問題まとめ

平方分割

  • Square Root Decomposition
  • 区間に対するクエリに対して高速に処理できる
  • ここが詳しい
  • 区間でのクエリであるが、ソートして平方分割して、各バケットでクエリに入る要素だけ抜き出す平方分割もある
    • こういう問題
    • 1.添字と共に昇順ソート 2.バケット毎に添え字ソート 3.各クエリについて全てのバケットのans[L][R]を取得してマージ
    • 出現頻度を扱う場合は平方分割が多いイメージ
  • クエリの平方分割
    • Q個のクエリを分けて解く手法 資料
  • 取得クエリだけで更新クエリが無い場合はバケットの間の処理は事前計算することで、処理をより軽くすることができる場合がある この解説