题意:

给定两个整数 \(n, m\),求:

\[\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}
\]

正文

开始推导!

老套路,先枚举 \(\gcd\left(i, j\right)\), 设 \(d = \gcd\left( i, j \right)\)。

则考虑对于每个可行的 \(d\),对应的 \(\operatorname{Fib}_d\) 被乘了多少次。

显然是:

\[\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
\]

次。

即:

\[\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\),则有:

\[\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)}
\]

然后整除分块求解即可。

洛谷 P3704 SDOI2017 数字表格的更多相关文章

  1. bzoj 4816: 洛谷 P3704: [SDOI2017]数字表格

    洛谷很早以前就写过了,今天交到bzoj发现TLE了. 检查了一下发现自己复杂度是错的. 题目传送门:洛谷P3704. 题意简述: 求 \(\prod_{i=1}^{N}\prod_{j=1}^{M}F ...

  2. 洛谷P3704 [SDOI2017]数字表格

    题目描述 Doris刚刚学习了fibonacci数列.用f[i]f[i] 表示数列的第ii 项,那么 f[0]=0f[0]=0 ,f[1]=1f[1]=1 , f[n]=f[n-1]+f[n-2],n ...

  3. 洛谷 P3704 [SDOI2017]数字表格(莫比乌斯函数)

    题面传送门 题意: 求 \[\prod\limits_{i=1}^n\prod\limits_{j=1}^mfib_{\gcd(i,j)} \] \(T\) 组测试数据,\(1 \leq T \leq ...

  4. 洛谷P3704 [SDOI2017]数字表格(莫比乌斯反演)

    传送门 yyb大佬太强啦…… 感觉还是有一点地方没有搞懂orz //minamoto #include<cstdio> #include<iostream> #include& ...

  5. 洛谷3704 [SDOI2017] 数字表格 【莫比乌斯反演】

    题目分析: 比较有意思,但是套路的数学题. 题目要求$ \prod_{i=1}^{n} \prod_{j=1}^{m}Fib(gcd(i,j)) $. 注意到$ gcd(i,j) $有大量重复,采用莫 ...

  6. 洛咕 P3704 [SDOI2017]数字表格

    大力推式子 现根据套路枚举\(\gcd(i,j)\) \(ans=\Pi_{x=1}^nfib[x]^{\sum_{i=1}^{n/x}\sum_{j=1}^{n/x}[\gcd(i,j)=1]}\) ...

  7. P3704 [SDOI2017]数字表格

    P3704 [SDOI2017]数字表格 链接 分析: $\ \ \ \prod\limits_{i = 1}^{n} \prod\limits_{j = 1}^{m} f[gcd(i, j)]$ $ ...

  8. P3704 [SDOI2017]数字表格 (莫比乌斯反演)

    [题目链接] https://www.luogu.org/problemnew/show/P3704 [题解] https://www.luogu.org/blog/cjyyb/solution-p3 ...

  9. luogu P3704 [SDOI2017]数字表格

    传送门 我是真的弱,推式子只能推一半 下面假设\(n<m\) 考虑题目要求的东西,可以考虑每个gcd的贡献,即\[\prod_{d=1}^{n}f[d]^{\sum_{i=1}^{\lfloor ...

随机推荐

  1. Zookeeper一致性协议——ZAB

    ZAB协议简介 Zookeeper通过ZAB保证分布式事务的最终一致性. ZAB全称Zookeeper Atomic Broadcast(ZAB,Zookeeper原子消息广播协议) ZAB是一种专门 ...

  2. 配置 nginx 访问资源目录,nginx配置 root 与 alias 的区别

    比如说想要把 /home/source 目录作为资源目录,那么需要如下配置: location /source/ { #识别url路径后,nginx会到/home/文件路径下,去匹配/source r ...

  3. 杭电OJ:1089----1096(c++)(ACM入门第一步:所有的输入输出格式)

    1089:输入输出练习的A + B(I) 问题描述 您的任务是计算a + b. 太容易了?!当然!我专门为ACM初学者设计了这个问题. 您一定已经发现某些问题与此标题具有相同的名称,是的,所有这些问题 ...

  4. Kubernetes官方java客户端之六:OpenAPI基本操作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. Face_to_object_design

    二.实例 掷骰子游戏:三粒骰子,掷两次,比较两次的结果. 1.提炼 提炼对象:三粒骰子.游戏 提炼对象的属性和功能:掷骰子.比较点数 骰子: 属性:点数 功能:随机获取一个1~6之间的整数值. 游戏: ...

  6. Java高并发与多线程(一)-----概念

    其实之前一直想专门写一篇,单独说一说Java的多线程与高并发,但是一直以来,都没有想到能够用什么比较有趣的表现形式去表达出来,而且网上充斥着很多类似的博客,有好的又不好的,有简介的有繁琐的,所以也一直 ...

  7. 【老孟Flutter】为什么 build 方法放在 State 中而不是在 StatefulWidget 中

    老孟导读:此篇文章是生命周期相关文章的番外篇,在查看源码的过程中发现了这一有趣的问题,欢迎大家一起探讨. Flutter 中Stateful 组件的生命周期:http://laomengit.com/ ...

  8. LeetCode703 流中第k大的元素

    前言: 我们已经介绍了二叉搜索树的相关特性,以及如何在二叉搜索树中实现一些基本操作,比如搜索.插入和删除.熟悉了这些基本概念之后,相信你已经能够成功运用它们来解决二叉搜索树问题. 二叉搜索树的有优点是 ...

  9. IO软件层次结构与假脱机技术

    IO软件层次结构 用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进 ...

  10. 【Linux】linux中通过date命令获取昨天或明天时间的方法

    date +"%F" 输出格式:2011-12-31 date +"%F %H:%M:%S" 输出格式:2011-12-31 16:29:50 这都是打印出系统 ...