
递推
文章平均质量分 85
递推
Happig丶
我的孤独,虽败犹荣
展开
-
递推公式&斐波那契数列的几种求法
什么是递推公式递推公式就是形如斐波那契数列那样,每一项都由前面几项运算求得下面以斐波那契数列为例讲解递推公式的几种求解方法斐波那契数列斐波那契数列形式如下:学习C语言后我们都知道斐波那契数列的递归求法,很好理解:1.递归求法时间复杂度O(2n)int Fibonacci(int n){ return n>2?Fibonacci(n-1)+Fibonacci(n-2)...原创 2020-01-28 19:19:25 · 15918 阅读 · 0 评论 -
AcWing 206. 石头游戏(矩阵加速递推)
传送门题目大意给出一个n∗m(1≤n,m≤8)n*m( 1\leq n,m \leq 8)n∗m(1≤n,m≤8)的矩阵,初始时每个位置的石头个数都是零,现在有如下三种操作opopop:0≤op≤90 \leq op \leq 90≤op≤9:表示拿opopop个石头到当前位置。op∈{N,W,S,E}op \in \{N,W,S,E\}op∈{N,W,S,E}:表示将当前格子上的石头全部推到北/西/南/东方向的格子上。(若出界相当于石头没了!)op=Dop=Dop=D:清空该格子上的石头。原创 2021-03-09 10:40:48 · 257 阅读 · 0 评论 -
HDU - 6755 Fibonacci Sum(斐波那契+二次剩余+二项式定理)
传送门对于斐波那契问题,一般想到的解法是递推或者矩阵快速幂,但是本题数据非常之大,怎么做都超时,临时想了一下斐波那契的公式,觉得这个浮点误差很大没法写,实际上可以写但是要用到很多知识,本题的总结收获不少(唯一难受的是代码优化能做的都做了自己写的还是超时)首先给出斐波那契数列的公式:F(n)=15[(1+52)n−(1−52)n]F(n)=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]F(n)=51[(21原创 2020-07-25 21:20:38 · 431 阅读 · 0 评论 -
POJ - 3233 Matrix Power Series(二分+矩阵快速幂)
传送门设S=a+a2+a3+...+anS=a+a^2+a^3+...+a^nS=a+a2+a3+...+an若nnn为偶数那么有:Sn=a+a2+...+an2+an2+1+...+an2+n2 =(1+an2)(a+a2+...+an2) =(1+an2)Sn2S_n=a+a^2+...+a^{\frac{n}{2}}+a^{\frac{n}{2}+1}+...+a^{\frac{n}{2}+\frac{原创 2020-08-18 09:25:25 · 160 阅读 · 0 评论 -
SPOJ - FIBOSUM Fibonacci Sum(递推公式/矩阵快速幂)
传送门解法一找规律不难发现斐波那契数列的前缀和和斐波那契数列有直接的联系,也就是s(n)=f(n+2)−1s(n)=f(n+2)-1s(n)=f(n+2)−1,这个可以通过数学归纳法证明或者通过斐波那契数列的公式f(n)=15[(1+52)n−(1−52)n]f(n)=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]f(n)=51[(21+5)n−(21−5)n],然后考虑等比数列求和公式code:原创 2020-08-14 09:41:24 · 246 阅读 · 0 评论 -
杜教BM(线性求递推答案)
简介对于线性递推式,都是有规律的,不管是斐波那契形式的还是加入了其他运算,如果能找到递推规律可以直接写否则,一种简便且行之有效的方法是:先求出前TTT项(不放心可以求1e61e61e6项)然后套用杜教BM板子直接求出结果时间复杂度O(T)O(T)O(T),有翻车的可能性模板#define rep(i,a,n) for (int i=a;i<n;i++)#define SZ(x) ((int)(x).size())typedef vector<int> VI;typedef原创 2020-08-17 16:15:47 · 456 阅读 · 0 评论 -
差分法求高阶等差数列的通项公式
高阶等差数列对于一个给定的数列,将连续两项之间的差bn=an+1−anb_n=a_{n+1}-a_nbn=an+1−an得到一个新的数列,那么bnb_nbn称为原数列的一阶等差数列,若cn=bn+1−bnc_n=b_{n+1}-b_ncn=bn+1−bn,那么cnc_ncn称为原数列的二阶等差数列,以此类推…高阶等差数列都有一个多项式的通项公式。差分法给定序列aaa,依次求出该序列的kkk阶等差序列,直到某个序列全为000为止,按照下列排列规则排列在纸上Cn+11 &nb原创 2020-09-21 11:42:18 · 4618 阅读 · 0 评论 -
HDU - 5950 Recursive sequence(非常规矩阵快速幂)
传送门题目大意给出一个如下的递推式,给出前两项求第nnn项:f(n)=f(n−1)+2f(n−2)+n4f(n)=f(n-1)+2f(n-2)+n^4f(n)=f(n−1)+2f(n−2)+n4解题思路对于n4n^4n4,实际上和f(n)f(n)f(n)并不是递推关系,一开始想的是将n4n^4n4和前面部分拆开来求,但是这样是错误的,不能拆开,因此考虑以下思路:n4=[(n−1)+1)4]=C40(n−1)4+C41(n−1)3+C42(n−1)2+C41(n−1)+1n^4=[(n-1)+1原创 2020-10-26 08:27:34 · 323 阅读 · 1 评论