suxxsfe

一言(ヒトコト)

斐波那契数列

WC 考到了,自己却啥也不会,于是做一波斐波那契的题

\(F_i\) 为斐波那契数列的第 \(i\)
如果题目没特殊说明,这篇博客中默认初始项是 \(F_1=F_2=1\)

各种性质

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

证明:
根据辗转相减法,有
\(\gcd(F_n,F_{n+1})=\gcd(F_{n+1}-F_n,F_n)=\gcd(F_{n-1},F_n)=\cdots=\gcd(F_1,F_2)=1\)


\[\gcd(F_n,F_m)=F_{\gcd(n,m)} \]

证明:
\(m=n+k\)
如果把 \(F_p,p>n+1\) 都用 \(F_n\)\(F_{n+1}\) 表示出来,就有:

\[F_{n+2}=1\cdots F_n+1\cdot F_{n+1} \]

\[F_{n+3}=1\cdots F_n+2\cdot F_{n+1} \]

\[F_{n+4}=2\cdots F_n+3\cdot F_{n+1} \]

\[\cdots \]

\[F_{n+k}=F_{k-1}F_n+F_kF_{n+1} \]

那么就有 \(\gcd(F_n,F_m)=\gcd(F_n,F_{k-1}F_n+F_k F_{n+1})=\gcd(F_n,F_k F_{n+1})\)
又因为上一条性质 \(\gcd(F_n,F_{n+1})=1\),就得到 \(\gcd(F_n,F_m)=\gcd(F_n,F_k)=\gcd(F_n,F_{m-n})\)
然后你发现,把它多迭代几次,就成立在角标上做辗转相减(外面再套一个 \(\gcd\)),那最后一串等下去,就等于了 \(\gcd(F_{\gcd(n,m)},F_{\gcd(n,m)})=F_{\gcd(n,m)}\)
于是得证


齐肯多夫定理:任意正整数 \(n\) 都可以表示为若干不连续的斐波那契数之和

考虑归纳,\(n=1,2,3\) 都成立

  • \(n\) 是斐波那契数,显然成立
  • 若不是,设 \(n_1\) 是最大的满足 \(f(n_1)<n<f(n_1+1)\) 的数
  • \(n'=n-f(n_1)<f(n_1+1)-f(n_1)=f(n_1-1)\)
  • 根据归纳,\(n'\) 可以表示为若干不连续的斐波那契数之和:\(n'=f(n_2)+\cdots +f(n_k)\),设其中 \(n_2\) 是最大的
  • 由于 \(n'<f(n_1-1)\),有 \(n_2<n_1-1\)
  • 那么 \(n=f(n_1)+f(n_2)+\cdots f(n_k)\),其中 \(n_1,\cdots,n_k\) 都是不连续的

题目:

  1. P1306 斐波那契公约数,模版,直接矩阵加速
  2. CF226C Anniversary
    • 就是转换为求 \(\gcd(a_1,a_2,\cdots,a_k)\) 的最大值
    • 然后就是找到一个最大的 \(x\),使得 \(x\) 有至少 \(k\) 个倍数出现在 \([l,r]\) 中,也就是 \(\lfloor\dfrac{r}{x}\rfloor-\lfloor\dfrac{l-1}{x}\rfloor \ge k\)
    • 于是可以整除分块枚举 \(\lfloor\dfrac{r}{x}\rfloor\) 的值,如果 \(x\) 当前可取的值是 \([L,R]\)(就是让 \(\lfloor\dfrac{r}{x}\rfloor\) 相同的 \(x\)),那么肯定是让 \(x\) 取到 \(R\),这样既能让上面的式子尽量大去符号要求,也会让选择更优
posted @ 2021-02-08 02:24  suxxsfe  阅读(176)  评论(0编辑  收藏  举报