洛谷 P3704 SDOI2017 数字表格
题意:
给定两个整数 \(n, m\),求:
\]
其中 \(\operatorname{Fib}_n\) 表示斐波那契数列的第 \(n\) 项,斐波那契数列按照如下方式递归定义:
\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} ^ {\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
\]
次。
即:
\]
换元。设 \(T = dt\),则有:
= \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\), 预处理:
\]
然后整除分块求解即可。
洛谷 P3704 SDOI2017 数字表格的更多相关文章
- bzoj 4816: 洛谷 P3704: [SDOI2017]数字表格
洛谷很早以前就写过了,今天交到bzoj发现TLE了. 检查了一下发现自己复杂度是错的. 题目传送门:洛谷P3704. 题意简述: 求 \(\prod_{i=1}^{N}\prod_{j=1}^{M}F ...
- 洛谷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 ...
- 洛谷 P3704 [SDOI2017]数字表格(莫比乌斯函数)
题面传送门 题意: 求 \[\prod\limits_{i=1}^n\prod\limits_{j=1}^mfib_{\gcd(i,j)} \] \(T\) 组测试数据,\(1 \leq T \leq ...
- 洛谷P3704 [SDOI2017]数字表格(莫比乌斯反演)
传送门 yyb大佬太强啦…… 感觉还是有一点地方没有搞懂orz //minamoto #include<cstdio> #include<iostream> #include& ...
- 洛谷3704 [SDOI2017] 数字表格 【莫比乌斯反演】
题目分析: 比较有意思,但是套路的数学题. 题目要求$ \prod_{i=1}^{n} \prod_{j=1}^{m}Fib(gcd(i,j)) $. 注意到$ gcd(i,j) $有大量重复,采用莫 ...
- 洛咕 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]}\) ...
- P3704 [SDOI2017]数字表格
P3704 [SDOI2017]数字表格 链接 分析: $\ \ \ \prod\limits_{i = 1}^{n} \prod\limits_{j = 1}^{m} f[gcd(i, j)]$ $ ...
- P3704 [SDOI2017]数字表格 (莫比乌斯反演)
[题目链接] https://www.luogu.org/problemnew/show/P3704 [题解] https://www.luogu.org/blog/cjyyb/solution-p3 ...
- luogu P3704 [SDOI2017]数字表格
传送门 我是真的弱,推式子只能推一半 下面假设\(n<m\) 考虑题目要求的东西,可以考虑每个gcd的贡献,即\[\prod_{d=1}^{n}f[d]^{\sum_{i=1}^{\lfloor ...
随机推荐
- Double 值比较大小 Long值比较大小
BigDecimal outValue = new BigDecimal(sapVerifyInventory.getQuantity()); BigDecimal inValue = new Big ...
- 使用JMeter进行压力测试
使用JMeter进行压力测试(基础篇) 1.启动Jmeter 双击图中所示文件出现如下图所示即启动成功 2 新建测试计划 File------>new 2.1右键新建线程组 add-----&g ...
- 云计算之3---OpenStack
KVM管理平台 KVM实现了虚拟化核心的监视工具,其在UI方便的管理工具多种多样.比较典型的管理工具有virsh,virt-manager,ovirt等. virsh为命令行管理工具,功能强大 ...
- cmake - 可执行文件
1.生成可执行文件 add_executable(hello xxx.cpp xxxxx.cpp) ##根据文件xxx.cpp和xxxx.cpp生成可执行文件hello,但是这两个可执行文件如果依赖其 ...
- Shell 编程(一)
为什么学习 Shell 编程? 用 shell 来进行服务器的管理或维护 对于大数据程序员来说,需要编写 shell 来管理集群 Shell 是什么? Shell 是一个命令解释器,它为用户提供了 ...
- Socket粘包问题的3种解决方案,最后一种最完美!
在 Java 语言中,传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议:TCP 协议和 UDP 协议,但作为互联网中最常用的传输层协议 TCP,在使用时却会导致粘 ...
- Tensorflow创建已知分布的张量
一.随机数 tf.random(num) 随机产生返回0----num-1的数 二.图变量 tf.Variable.init(initial_value, trainable=True, collec ...
- IE浏览器F12无法使用
原文链接http://zhhll.icu/2020/04/07/windows/IE%E6%B5%8F%E8%A7%88%E5%99%A8F12%E6%97%A0%E6%B3%95%E4%BD%BF% ...
- 常用 .gitignore 模板
前言 每次建项目的时候可以直接复制了,也算是方便自己,以后发现少的会更新 正文 作用 git提交时忽略文件 文件名 .gitignore Python # Byte-compiled / optimi ...
- JVM-03
目录 1.1 新生代垃圾收集器 1.1.1 Serial 垃圾收集器(单线程) 1.1.2 ParNew 垃圾收集器(多线程) 1.1.3 Parallel Scavenge 垃圾收集器(多线程) 2 ...