Loading

推柿子

8.8 T3

我们浅浅跳过一下前面的二分和贪心。

\[f(a, b, c, n) = \max_{i = 0} ^ n \{(ai + b) \bmod c\} \\ g(a, b, c, n) = \min_{i = 0} ^ n \{(ai + b) \bmod c\} \]

\(f, g\)。要求复杂度 \(\mathcal{O}(\log V)\)

  • 核心想法:交换 \(a, c\)

  • 边界条件与性质:

    \[f(a, b, c, 0) = g(a, b, c, 0) = f(0, b, c, n) = g(0, b, c, n) = b \bmod c \\ f(a, b, c, n) = f(a \bmod c, b \bmod c, c, n) \\ g(a, b, c, n) = g(a \bmod c, b \bmod c, c, n) \]

我们开始推导。

\[\begin{aligned} & f(a, b, c, n) = \max_{i = 0} ^ n\{(ai + b) \bmod c\} \\ & j = \lfloor \dfrac{ai + b}{c} \rfloor \implies ai + b \le c(j + 1) - 1 \implies i \le \min\{n, \lfloor \dfrac{cj + c - 1 - b}{a} \rfloor\} \\ & j = \lfloor \dfrac{ai + b}{c} \rfloor \implies j \le \lfloor \dfrac{an + b}{c} \rfloor \\ & \begin{cases} \ j = \lfloor \dfrac{an + b}{c} \rfloor \implies (ai + b) \bmod c \le (an + b) \bmod c \\ \ j \le \dfrac{an + b}{c} - 1 \implies cj + c - 1 - b \le an + b - b - 1 \le an \implies i \le n \end{cases} \\ & (ai + b) \bmod c = ai + b - \lfloor\dfrac{ai + b}{c}\rfloor c \\ & \implies f(a, b, c, n) = \max \{(an + b) \bmod c, \max_{j = 0} ^ {\lfloor \frac{an + b}{c} \rfloor - 1} \{(a \lfloor \dfrac{cj + c - 1 - b}{a} \rfloor + b) - cj\}\} \\ & = \max \{(an + b) \bmod c, c - 1 - \min_{j = 0} ^ {\lfloor \frac{an + b}{c} \rfloor - 1} \{(cj + c - 1 - b) - a \lfloor \dfrac{cj + c - 1 - b}{a} \rfloor\}\}\\ & = \max \{(an + b) \bmod c, c - 1 - \min_{j = 0} ^ {\lfloor \frac{an + b}{c} \rfloor - 1} \{(cj + (c - 1 - b)) \bmod a \}\}\\ & \implies f(a, b, c, n) = \max((an + b) \bmod c, c - 1 - g(c, c - b - 1, a, \lfloor \dfrac{an + b}{c} \rfloor - 1)) \end{aligned} \]

同理,我们有:

\[g(a, b, c, n) = \min(b, a - 1 - f(c, c - b - 1, a, \lfloor\dfrac{an + b}{c}\rfloor - 1)) \]

于是我们完成了交换 \(a, c\)。由于 \(a\) 可以对 \(c\) 取模,复杂度为单 \(\log\)

posted @ 2025-08-08 20:48  DE_aemmprty  阅读(16)  评论(0)    收藏  举报