DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

座標圧縮とクエリ

問題に戻る

解説

配列 AAA をそのまま保持し、クエリを順番に処理する。

種類 1 では、Al,…,ArA_l,\ldots,A_rAl​,…,Ar​ を別の配列にコピーし、ソートして重複を取り除く。ソート済みの異なる値の列 BBB における各 AiA_iAi​ の lower_bound の位置が、圧縮後の値となる。区間外は変更しない。

種類 2 では、区間を走査して最小値 mmm と最大値 MMM を求める。浮動小数点数を使わず、各候補 xxx について ∣2x−(m+M)∣|2x-(m+M)|∣2x−(m+M)∣ を比較する。この値が最小となる候補のうち、最も小さい値を選ぶ。配列の値と中間計算には long long を使う。

種類 3 では、区間の各要素に ddd を直接加える。

正当性: ソートして重複を除いた列における位置は、その値より小さい異なる値の個数と一致するため、種類 1 は正しい。種類 2 は区間に存在するすべての候補を調べ、目標値までの距離の 222 倍を正確に比較し、同距離の場合の規則も適用する。種類 3 は指定された要素だけを更新する。したがって、すべてのクエリは正しく処理される。

種類 1 の各クエリは O(Nlog⁡N)O(N\log N)O(NlogN) 時間、それ以外はそれぞれ O(N)O(N)O(N) 時間で処理できる。種類 1 は高々 100100100 回なので、全体の時間計算量は O(NQ+100Nlog⁡N)O(NQ+100N\log N)O(N、追加空間計算量は である。

Q
+
100NlogN)
O(N)O(N)O(N)
Solution written by GPT6