洛谷 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 ...
随机推荐
- 【原创】Linux PCI驱动框架分析(二)
背 景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本 ...
- 深入理解Kafka必知必会(1)
Kafka的用途有哪些?使用场景如何? 消息系统: Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦.冗余存储.流量削峰.缓冲.异步通信.扩展性.可恢复性等功能.与此同时,Kafka 还 ...
- Spark算子使用
一.spark的算子分类 转换算子和行动算子 转换算子:在使用的时候,spark是不会真正执行,直到需要行动算子之后才会执行.在spark中每一个算子在计算之后就会产生一个新的RDD. 二.在编写sp ...
- 第8章 控制对象的访问(setter、getter、proxy)
目录 1. 使用getter和setter控制属性访问 1.1 定义getter与setter 通过对象字面量定义,或在ES6的class中定义 通过使用内置的Object.definePropert ...
- 如何限制电脑访问网址—使用Host限制访问网址
如何限制电脑访问网址-使用Host限制访问网址 1. 打开C:\Windows\System32\drivers\etc 2. 打开hosts 3. 修改host内容,如下示例 127.0.0.1 ...
- Lock锁 精讲
1.为什么需要Lock 为什么synchronized不够用,还需要Lock Lock和synchronized这两个最常见的锁都可以达到线程安全的目的,但是功能上有很大不同. Lock并不是用来代替 ...
- fastjson反序列化漏洞原理及利用
重要漏洞利用poc及版本 我是从github上的参考中直接copy的exp,这个类就是要注入的类 import java.lang.Runtime; import java.lang.Process; ...
- SqlLoad的简单使用
sqlload的简单使用: 能实现: 快速导入大量数据 1.先安装oracle 客户端机器.有点大,600M+, 2.安装时选择管理员安装(1.1g) 3.第三步的时候我的出错了.说是环境变量校验不通 ...
- Invalid bound statement (not found): com.xxx.xxx.dao.ShopMapper.insertShop
mybatis在编写完SQL,进行测试的时候出现了错误,显示 org.apache.ibatis.binding.BindingException: Invalid bound statement ( ...
- IPC 经典问题:Sleeping Barber Problem
完整代码实现: #include <stdio.h> #include <unistd.h> #include <time.h> #include <stdl ...