奇妙的 Fibonacci,多次模拟赛中出现 同时也是 BZOJ 2813

一 Fibonacci 的 GCD

如果 \(F\) 是 Fibonacci 数列,那么众所周知的有 \(\gcd(F_i,F_j)=F_{\gcd(i,j)}\) .

为什么呢?其实是平凡的 .

首先证明两个引理:

Lemma 1

\[F_n=F_{n−m}F_{m−1}+F_{n−m+1}F_m
\]

考虑归纳 .

当 \(m=1\) 时结论显然成立,假设 \(m=k\) 时结论成立,下证 \(m=k+1\) 时结论亦成立:

\[\begin{aligned}F_n&=F_{n−k}F_{k−1}+F_{n−k+1}F_k\\&=F_{n−k}F_{k−1}+(F_{n−k}+F_{n−k-1})F_k\\&=F_{n−k}F_{k−1}+F_{n−k}F_k+F_{n−k-1}F_k\\&=F_{n-k}(F_{k-1}+F_k)+F_{n−k-1}F_k\\&=F_{n-k}F_{k+1}+F_{n-k-1}F_k\end{aligned}
\]

证完了 .


Lemma 2

\[\gcd(F_n,F_{n+1})=1
\]

归纳,\(n=1\) 显然成立 .

又 \(\gcd(F_i,F_{i+1})=\gcd(F_i,F_i+F_{i−1})=\gcd(F_i,F_{i−1})\),即可归纳出原命题 .


回到原题 .

不妨令 \(n<m\),那么 \(\gcd(F_n,F_m)=\gcd(F_{n−m}F_{m−1}+F_{n−m+1}F_m,F_m)=\gcd(F_{n-m}F_{m-1},F_m)=\gcd(F_{n-m},F_m)\) .

第一个等号用的 Lemma 1,第二个用的辗转相除,第三个用的 Lemma 2 .

那么我们发现这个柿子不就是辗转相除嘛,于是就有 \(\gcd(F_n,F_m) = F_{\gcd(n,m)}\),证毕 .

二 线性筛约数平方和

为什么题解拿了这么多文字来说 .

https://www.cnblogs.com/CDOI-24374/p/16040275.html

于是问题被在线性时间复杂度内解决

关于奇妙的 Fibonacci 的一些说明的更多相关文章

  1. BZOJ 2813: 奇妙的Fibonacci

    2813: 奇妙的Fibonacci Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 497  Solved: 134[Submit][Status][ ...

  2. 【BZOJ2813】奇妙的Fibonacci

    Description ​ Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) ​ pty忽 ...

  3. 【bzoj2813】 奇妙的Fibonacci数列 线性筛

    Description Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) pty忽然对这个 ...

  4. bzoj千题计划204:bzoj2813: 奇妙的Fibonacci

    http://www.lydsy.com/JudgeOnline/problem.php?id=2813 若j能整除i,则f[j]能整除f[i] 题目就变成了求约数个数和.约数的平方和 http:// ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. Noip模拟73 2021.10.10

    老妈送来了防寒补给就很棒,再也不用晚上盖两层毛巾被了,再也不用担心晚上自动把毛巾被$split$了 还有一些好吃的耶叶 T1 小L的疑惑 考场上疑惑的切掉了 直接把$a$排序然后处理前缀和的过程中判断 ...

  7. BZOJ_2813_奇妙的Fibonacci_线性筛

    BZOJ_2813_奇妙的Fibonacci_线性筛 Description Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + ...

  8. 算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找

    今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...

  9. #26 fibonacci seqs

    Difficulty: Easy Topic: Fibonacci seqs Write a function which returns the first X fibonacci numbers. ...

随机推荐

  1. 万字长文详解HBase读写性能优化

    一.HBase 读优化 1. HBase客户端优化 和大多数系统一样,客户端作为业务读写的入口,姿势使用不正确通常会导致本业务读延迟较高实际上存在一些使用姿势的推荐用法,这里一般需要关注四个问题: 1 ...

  2. mybatis plus 增删改自动填充字段值

    说明 本文实现以下需求效果 创建数据时自动填充 createUserId 和 createTime 更新数据时自动填充 updateUserId 和 updateTime(每次修改都自动填充新的 up ...

  3. Python模块Ⅱ

    Python模块2 part3 模块的分类: 内置模块200种左右:python自带的模块,time os sys hashlib等 第三方模块6000种左右:需要pip install beauti ...

  4. 素性测试+PollardRho

    素数判定 暴力 本质上是检查其是否能够不用其本身进行质因数分解. 直接枚举从区间 \([2,n)\) 的数看其是否整除 \(n\) 即可.但是其实发现我们只要枚举到 \(\sqrt n\) 即可,复杂 ...

  5. CSP-J游记

    祝大家 CSP-J/CSP-S 稳过第一轮 ~(- ∨ -)~ ~~ 建议扩大110%食用 ~~ 中秋快乐鸭(希望大家不会收到损友送的砖头月饼 : − ) :-) :−)) 咳咳,昨天是我们可爱初赛来 ...

  6. 在 .NET 中使用 FixedTimeEquals 应对计时攻击

    计时攻击 在计算机安全中,计时攻击(Timing attack)是旁道攻击 (Side-channel attack) 的一种,而旁道攻击是根据计算机处理过程发出的信息进行分析,包括耗时,声音,功耗等 ...

  7. python基础学习10

    python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...

  8. 解决python无法打开谷歌浏览器问题

    python+selenium 打开浏览器网页时可能会出现两种情况, 一.python 初次打开浏览器未进行安装浏览器控制插件, 二.python 能打开浏览器的情况下,突然有一天发现无法打开并报错新 ...

  9. LSP原则是什么

    如果这篇文章能够帮到您,请给我一个免费的赞,谢谢QWQ! LSP原则并不难,但是地方就会把它说的很啰嗦,如果你对LSP还是感到疑惑,请往下看看. 先上代码: public class Bird { p ...

  10. Mysql中文存储、显示及不区分大小写控制

    刚开始使用mysql,以为安装了完了就可以使用了,结果是我太天真了.mysql5.7版本,默认严格区分大小写,并且不支持中文存储. 严格区分大小写,即A表和a表示两个不同的表 实例 修改 在/etc/ ...