ARC028 D - 注文の多い高橋商店
まず、クエリを無視して計算をします。このときのFPSを$F$とおくと、
$$ \begin{aligned} F &= \prod_{i = 1}^{N} (1 + \cdots + x^{a_i}) \\\ &= \prod_{i = 1}^{N} \frac{1 - x^{a_i + 1}}{1 - x} \\\ &= (1 - x)^{-N} \prod_{i = 1}^{N} (1 - x^{a_i + 1}) \end{aligned} $$
EDPC M - Candiesと同じ式となり$O(NM)$で計算できます。
次に、$k$種類目の商品を抜いて計算することを考える。$k$種類目の商品を抜いた時のFPSを$G_k$とすれば、
$$ \begin{aligned} G_k &= F \frac{1 - x}{1 - x^{a_k + 1}} \\\ &= F (1 + x^{a_k + 1} + x^{2(a_k + 1)} + \cdots) (1 - x) \end{aligned} $$
$1 + x^{a_k + 1} + x^{2(a_k + 1)} + \cdots$は周期$a_k + 1$ごとに累積和を取る操作なので、$G_k$は$O(K)$で求められます。
クエリ$k, x$に対しては$[x^{M - x}]G_k$で答えることができて、全体で$O(NK)$で求められます。
|
|