奇妙的 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. MyBatisPlus 入门教程,这篇很赞

    在之前的文章中我们经常使用MybatisPlus进行增删改查,可能有些小伙伴对mybatisplus不是很熟悉,今天特意出了一般入门级的教程,我自己也是一边学习一边写的,有什么地方写的不好的地方请留意 ...

  2. jQuery操作标签,jQuery事件操作,jQuery动画效果,前端框架

    jQuery操作标签 jQuery代码查找标签绑定的变量名推荐使用 $xxxEle 样式类操作 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类 ...

  3. 石油储运生产 2D 可视化,组态应用赋能工业智慧发展

    前言 当前,国际油价低位徘徊导致各国石油化工行业投资大幅缩减,石油化工建设行业竞争环境日趋严峻,施工企业的利润空间也被不断压缩.内外交困的环境下,促使企业采取更有效的管理手段来提高效率和降低成本.石油 ...

  4. 对象、Map、Set、WeakMap、WeakSet

    对象.Map.Set.WeakMap.WeakSet 本文写于 2020 年 11 月 24 日 总的来说,Set 和 Map 主要的应用场景分别在于数据重组和数据储存.Set 是一种叫做「集合」的数 ...

  5. 110. Balanced Binary Tree - LeetCode

    Question 110. Balanced Binary Tree Solution 题目大意:判断一个二叉树是不是平衡二叉树 思路:定义个boolean来记录每个子节点是否平衡 Java实现: p ...

  6. python字符编码与文件操作

    目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...

  7. Fail2ban 配置详解 配置目录结构说明

    /etc/fail2ban/ ├── action.d │ ├── ... ├── fail2ban.conf ├── fail2ban.d ├── filter.d │ ├── ... ├── ja ...

  8. node包的降版本

    1.安装版本更高的node包直接到官网去安装. 2.从版本高的node包,降低到版本低的node包. 要先卸载现在的node包,在菜单栏中可以删除. 然后通过https://nodejs.org/zh ...

  9. Matplotlib的小入门

    Matplotlib专门用于开发2D图表(包括3D图表),在日常数据处理中经常需要运用到它,它的用法非常多样,这里记录一些基础用法,算是一个小入门,后面如果有更复杂的画图要求,再进一步学习. 如果有需 ...

  10. 深度学习与CV教程(10) | 轻量化CNN架构 (SqueezeNet,ShuffleNet,MobileNet等)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...