首页 > 其他分享 >佳佳的 Fibonacci

佳佳的 Fibonacci

时间:2024-04-03 21:57:11浏览次数:22  
标签:化简 佳佳 sum times 斐波 Fibonacci 式子

和 lyh 想的差不多,我认为我写的会更详细一些。

dyc 好厉害。完全想不到这样的做法。

给你两个整数 \(n\),\(m\),让你求以下式子的值。

\[T(n) = \sum_{i=1}^{n} f(i)\times i\bmod m \]

对于斐波那契数列 \(f(n)=f(n-1)+f(n-2)\) 这样的性质,使用前缀和化简式子是个好东西。

式子就变成了

\[T(n) = \sum_{i=1}^{n} s(n)-s(i-1) \]

提出 \(s(n)\),结合一下斐波那契数列的结论 \(s(i)=f(i+2)-1\),进行代入。

\[T(n) = n\times s(n)-\sum_{i=1}^{n}s(i-1) \]

对 \(\sum\) 进行化简

\[T(n) = n\times f(n+2)-n-\sum_{i=1}^{n} f(i+1) +n \]

剩下的步骤很容易了。

\[\begin{aligned} T(n) &= n\times f(n+2)-n-\sum_{i=2}^{n+1} f(i)+n \\ &= n\times f(n+2)-n-\sum_{i=2}^{n+1}f(i)+f(1)-f(1)+n\\ &=n\times f(n+2)-n-\sum_{i=1}^{n+1}f(i) - f(1) +n\\ &=n\times f(n+2)-s(n+1)-1\\ &=n\times f(n+2)-(f(n+3)-1)-1\\ &=n\times f(n+2)-f(n+3)+2\\ \end{aligned}\]

矩阵快速幂加速递推 \(f\) 即可,于是就用 \(\log\) 的优秀复杂度求 \(T(n)\) 了。

标签:化简,佳佳,sum,times,斐波,Fibonacci,式子
From: https://www.cnblogs.com/zxcqwq/p/18113581

相关文章

  • Fibonacci
    #1.Recursionslowdeffibonacci_recursion(n):ifn<=1:returnnelse:returnfibonacci_recursion(n-1)+fibonacci_recursion(n-2)#2.Listsaveeveryvalue,avoidrepeatecomputefastdeffibonacci_list(n):F=[0,1]if......
  • Fibonacci数列
    1.Fibonacci数列-蓝桥云课(lanqiao.cn)题目描述:Fibonacci数列:第1、2项均为1,从第3项开始,每一项都是前两项之和。输入n值,输出Fibonacci数列第n项,该数列前10项为1,1,2,3,5,8,13,21,34,55。输入描述:输入占一行,为n的值,1sns40。输出描述:输出占一行,为Fibonacci数列第n项......
  • 佳佳的 Fibonacci
    题面\(f_x=\begin{cases}1&x\in\{1,2\}\\f_{x-1}+f_{x-2}&x\geq3\\\end{cases}\)求\(1\timesf_1+2\timesf_2+3\timesf_3+…+n\timesf_n\)。解法正常的Fibonacci前n项和\(loj\)如果卡死了用这个:Fibonac......
  • P9825 [ICPC2020 Shanghai R] Fibonacci
    原题链接题解直观的\(O(n)\)算法很容易想到,但是很不幸,挂了所以我们要想到\(O(1)\)的做法考虑到斐波那契数列非常有规律,所以我们找找规律奇,奇,偶,奇,奇,偶。。。code#include<bits/stdc++.h>usingnamespacestd;#definelllonglonglla[5]={0};intmain(){lln......
  • CF1264F Beautiful Fibonacci Problem
    一道比较Beautiful的结论题,初始感觉难以下手,做了后认为在CF3500中不算很难的(逃看到题目中“后18位的子串”,很明显的,我们要求一下Fibonacci数列${mod}10^k$的循环节。实践打表证明这个循环节为$1.5*10^k$但是我们需要一个随Fibonacci下标线性增加,$mod10^k$的值也线性增加的......
  • 2019年-fibonacci数列与黄金分割
    目录题目法一、递归法二、迭代题目法一、递归deffib(n):ifn==1orn==2:return1returnfib(n-1)+fib(n-2)n=int(input())a=fib(n)b=fib(n+1)print("{:.8f}".format(a/b))只通过了60%的测试法二、迭代#动态规划#deffib(n):#dp=[0]*(n+1)#......
  • 打印 Fibonacci 数列:
    #include<stdio.h> voidfibonacci(intn){   inti,num1=0,num2=1,nextNum;      printf("Fibonacciseriesupto%dterms:\n",n);      for(i=1;i<=n;++i){       printf("%d,",num1);       nextNum=num1+......
  • CodeForces 946F Fibonacci String Subsequences
    洛谷传送门CF传送门duel的时候差点不会2400了。套路地,考虑每个\(F(x)\)中与\(s\)相同的子序列的贡献。设这个子序列为\(F(x)_{p_1},F(x)_{p_2},F(x)_{p_3},\ldots,F(x)_{p_n}\)。我们想要它成为一个子序列的子串,那么\(F(x)_{[p_1,p_n]}\)中除了\(p_1\simp_......
  • 【题解】Fibonacci-ish II
    传送门题目分析根据题目范围\(n\le30000\)并且此题可以离线维护这个很恶心的东西,所以我们考虑莫队。由于要求访问到任意一个区间都要求知道它有序之后的序列,所以这个东西可以用权值线段树维护。因此,此题正解是莫队+权值线段树。我们分类讨论一下加上一个数,删除一个数对答案......
  • Go - Fibonacci
    fibonacci.gopackagealgorithms//DynamicProgrammingfuncFibonacci1(nint)int{ifn<=0{return0}ifn<=2{return1}previous1:=1previous2:=1currentVal:=0fori:=3;i<=n;......