D - 雇用計画 Editorial by Mitsubachi


グループの個数は候補者 $i$ の評価値 $A_i$ が $B_j$ 以上である $i$ の個数から候補者 $i,i+1$ の評価値 $A_i,A_{i+1}$ が共に $B_j$ 以上である $i$ の個数を引いたものであることが分かります。
クエリをオフラインで処理するとして、座圧をします。前者の数はsegmenttreeに評価値が $x$ の候補者が何人いるかを乗せることで求められます。
後者について、 $A_i,A_{i+1} \geq B_j$ は $\min (A_i,A_{i+1}) \geq B_j$ と言い換えることができるので、 $M_i= \min (A_i,A_{i+1})$ とした $M$ について前者と同様にsegmenttreeに乗せればよいです。

計算量は \(O((N+M) \log (N+M))\) です。

posted:
last update: