首页 > 其他分享 >常系数齐次线性递推学习笔记

常系数齐次线性递推学习笔记

时间:2022-11-01 16:55:05浏览次数:73  
标签:偶次 卷积 dfrac sum 笔记 齐次 写为 递推 式子

写在前面的话

碍于笔者水平有限,本文缺陷可能比较多,欢迎指正。

前置知识:NTT。

模板

\(\text{Link}\)

给定 \(f_1,f_2,f_3\dots f_k\) 和 \(a_0,a_1,a_2\dots a_{k-1}\),求

\[a_n=\sum_{i=1}^kf_ia_{n-i} \]

对 \(998244353\) 取模之后的值。

考虑到上面这个式子和卷积很像,所以我们先想办法将其化为卷积形式。

不妨令 \(f_0=0\),对于所有 \(i \geq k+1\) 的 \(f_i=0\)。

将上面的式子写为

\[a_n=\sum_{i=0}^n f_ia_{n-i} \]

变为了一个卷积的形式。

设 \(A(x)=\sum_{i=0}^{∞} a_i x^i\),\(F(x)=\sum_{i=0}^{∞} f_ix^i\)。

将上面的卷积式子写为 \(A(x)=A(x)F(x)\)。

当然,你会发现其实上面的式子只有在 \(n \geq k\) 时才成立,所以 \(A(x)\) 与 \(A(x)F(x)\) 的后 \(k-1\) 项系数可能不同。为了强制使其成立,将式子写为 \(A(x)=A(x)F(x)+P(x)\)。

其中 \(P(x)=\sum_{i=0}^{k-1}p_ix^i\)。

考虑到 \(A\) 前 \(k\) 项已知,\(P\) 最多 \(k\) 项。

所以在已知 \(F\) 的情况下可以求出 \(P\)。

\[A(x)=A(x)F(x)+P(x) \]

\[A(x)(1-F(x))=P(x) \]

直接求出 \(P(x)\)。

\[A(x)=\dfrac{P(x)}{1-F(x)} \]

令 \(Q(x)=1-F(x)\)。

答案就是 \(\dfrac{P(x)}{Q(x)}[x^n]\),考虑怎么求解。

首先将式子分子分母同乘 \(Q(-x)\),不难发现分母将只会剩下偶次项,令 \(Q_0(x^2)=Q(x)Q(-x)\),\(P_0(x)=P(x)Q(-x)\)。

如果你熟悉多项式求逆的过程,就可以发现 \(Q_0(x^2)\) 的逆一定也是一个只含偶次项的多项式。

那么 \(P_0(x)\) 的偶次项乘上 \(Q_0(x^2)\) 的逆之后仍为偶次项,奇数同理。

令 \(P_1(x^2)\) 表示 \(P_0(x)\) 的偶次项,\(xP_2(x^2)\) 表示 \(P_0(x)\) 的奇次项。

\[\dfrac{P_0(x)}{Q_0(x^2)}=\dfrac{P_1(x^2)}{Q_0(x^2)}+\dfrac{xP_2(x^2)}{Q_0(x^2)} \]

既然现在这个式子奇偶项互不影响,那么如果 \(n\) 为偶数,就递归求解 \(\dfrac{P_1(x^2)}{Q_0(x^2)}\),否则求解 \(\dfrac{xP_2(x^2)}{Q_0(x^2)}\)。

显然会求解 \(\log_2 n\) 次,所以总复杂度为 \(O(k \log_2 k \log_2 n)\)。

标签:偶次,卷积,dfrac,sum,笔记,齐次,写为,递推,式子
From: https://www.cnblogs.com/YccQwQ/p/16848301.html

相关文章

  • 【HDLBits刷题笔记】12 More Circuits
    Rule90第一次见这东西有点莫名其妙,但是其实看懂了之后就是左移和右移相异或,注意这里使用的是逻辑右移,会自动补零,不能使用算数左移<<<。moduletop_module(inputcl......
  • 笔记:java如何获取,指定范围的随机数?
    一、需求:如何获取一个指定范围的随机数,进行业务操作? 二、代码示例://传入指定的数值区间publicstaticintgetRandom(intmin,intmax){Randomrandom=newR......
  • linux使用笔记
    设置固定IPdebian默认网卡配置文件/etc/network/interfaces找到文件内对应网卡,将dhcp修改为static,并增加IP地址iface<网卡名>inetstaticaddress192.168.1.2......
  • 道长的算法笔记:单调栈查找前驱与后继
    单调栈单调栈是一种满足单调性的栈结构,其维护单调性方式是弹出栈顶不符合的条件的元素,也就是说,单调栈存储的并非入栈的全部元素,相当一部分元素会被弹掉。使用单调栈通常......
  • 做题笔记 - 重要
    1.****** for循环中的赋值语句只能使用平行赋值,不能用多个表达式正确用法:fori,j:=len(num1)-1,len(num2)-1;...错误用法:fori:=len(num1)-1,j:= le......
  • 学习笔记——动态 dp
    前言好消息,CSP-St4出DDP,并且有的人场上为了调T3的假算没写。。。概述其实是个挺简单的东西,就是如果一道题可以通过dp轻松解决,但是题目加上了每次询问修改一些信......
  • linux笔记
    马哥linux笔记11_04网络配置ifg和ip系列命令1.网络属于内核的功能。ip地址是属于内核的。虽然看起来像是配置在网卡上,但实际上是属于内核。无论数据是从哪个网卡进来,只......
  • 【笔记】正交和酉矩阵
    从Gram-SchmidtProcedure谈起。施密特正交化会把一组向量组,变换为正交矩阵和上三角矩阵的乘积。这就是QR分解。ModifiedGram-Schmidt是通过迭代的方法计算的。单位投影......
  • HCIA学习笔记三十九:DHCP全局地址池配置
    一、DHCP全局地址池配置•配置基于全局地址池的DHCP服务器,从所有接口上线的用户都可以从该全局地址池中获取IP地址等配置信息。二、DHCP全局地址池配置实验2.1、拓扑......
  • 学习笔记-Windows 安全
    Windows安全注:笔记中拓扑图drawio源文件在其图片目录下免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与......