洛谷 P3704 SDOI2017 數字表格

題意:

給定兩個整數 \(n, m\),求:spa

\[\prod_{i = 1} ^ n \prod_{j = 1} ^ m \operatorname{Fib}_{\gcd\left(n, m\right)} \]

其中 \(\operatorname{Fib}_n\) 表示斐波那契數列的第 \(n\) 項,斐波那契數列按照以下方式遞歸定義:遞歸

\[\begin{equation} \operatorname{Fib}_n = \begin{cases} 1 & n = 1\ \text{or}\ n = 2\\ \operatorname{Fib}_{n - 2} + \operatorname{Fib}_{n - 1} & \text{otherwise}\\ \end{cases} \end{equation} \]

正文

開始推導!io

老套路,先枚舉 \(\gcd\left(i, j\right)\), 設 \(d = \gcd\left( i, j \right)\)class

則考慮對於每一個可行的 \(d\),對應的 \(\operatorname{Fib}_d\) 被乘了多少次。gc

顯然是:di

\[\sum_{i = 1} ^ n \sum_{j = 1} ^ m [\gcd\left(i, j\right) = d]\\ = \sum_{i = 1} ^ {\lfloor\frac{n}{d}\rfloor} \sum_{j = 1} ^ {\lfloor\frac{m}{d}\rfloor} [\gcd\left(i, j\right) = 1]\\ = \sum_{i = 1} ^ {\lfloor\frac{n}{d}\rfloor} \sum_{j = 1} ^ {\lfloor\frac{m}{d}\rfloor} \sum_{t|\gcd\left(i, j\right)} \mu \left(t\right)\\ = \sum_{t = 1} ^ {\lfloor\frac{\min\{n, m\}}{d}\rfloor} \mu \left(t\right) \cdot \lfloor\frac{n}{dt}\rfloor \cdot \lfloor\frac{m}{dt}\rfloor \]

次。display

即:cas

\[\text{原式} = \prod_{d = 1} ^ {\min\{n, m\}} \operatorname{Fib}_d^{(\sum_{t = 1} ^ {\lfloor\frac{\min\{n, m\}}{d}\rfloor} \mu \left(t\right) \cdot \lfloor\frac{n}{dt}\rfloor \cdot \lfloor\frac{m}{dt}\rfloor)} \]

換元。設 \(T = dt\),則有:math

\[\text{原式} = \prod_{d = 1} ^ {\min\{n, m\}} \operatorname{Fib}_d^{(\sum_{t = 1} ^ {\lfloor\frac{\min\{n, m\}}{d}\rfloor} \mu \left(\frac{T}{d}\right) \cdot \lfloor\frac{n}{T}\rfloor \cdot \lfloor\frac{m}{T}\rfloor)}\\ = \prod_{d = 1} ^ {\min\{n, m\}} (\prod_{t = 1} ^ {\lfloor\frac{\min\{n, m\}}{d}\rfloor} \operatorname{Fib}_d^{\mu \left(\frac{T}{d}\right)}) ^ {\lfloor\frac{n}{T}\rfloor \cdot \lfloor\frac{m}{T}\rfloor}\\ = \prod_{T = 1} ^ {\min\{n, m\}} (\prod_{d | T} \operatorname{Fib}_d ^ {\mu \left(\frac{T}{d}\right)})^{\lfloor\frac{n}{T}\rfloor \cdot \lfloor\frac{m}{T}\rfloor}\]

對於每一個 \(T\), 預處理:枚舉

\[\prod_{d | T} \operatorname{Fib}_d ^ {\mu \left(\frac{T}{d}\right)} \]

而後整除分塊求解便可。

相關文章
相關標籤/搜索