首页 > 编程语言 >算法学习笔记(41): 朴素多项式算法

算法学习笔记(41): 朴素多项式算法

时间:2023-11-22 19:47:06浏览次数:36  
标签:在线 卷积 多项式 sum iff 41 算法

朴素多项式算法 - \(O(n^2)\) 合集

我们并不需要 NTT,就算需要,也只是用来优化乘法。

多项式求逆

对于多项式 \(\sum a_i x^i\) 我们需要构造出一个多项式 \(\sum b_i x^i\) 使得:

\[\begin{cases} a_0 b_0 = 1 \\ \sum_{i = 0}^k a_i b_{k - i} = 0 & k \ge 1 \end{cases} \]

首先 \(b_0\) 是好知道的,剩下的 \(\sum_{i = 0}^k a_i b_{k - i} = 0\) 将 \(b_k\) 那一项单独拆出来:

\[a_0 b_k = - \sum_{i = 1}^k a_i b_{k - i} \]

如果我们已知 \(b_{[0, k)}\),那么就可以通过上式推出 \(b_k\)。

同时,这可以利用半在线卷积优化到 \(O(n \log^2 n)\)。

多项式 \(\ln\)

考虑:

\[B(x) = \ln A(x) \iff B'(x) = \frac {A'(x)}{A(x)} \]

那么我们只需要多项式求导和求逆和积分即可。

或者有另外一种简单的公式:

\[B'(x) A(x) = A'(x) \iff \left(\sum_{i = 0}^{n - 1} (i + 1)b_{i + 1} x^i \right) \left(\sum_{i = 0}^n a_i x^i\right) = \sum_{i = 0}^{n - 1} (i + 1) a_{i + 1} x^i \]

将 \([x^n]\) 提出来:

\[(k + 1)a_{k+ 1} = \sum_{i = 0}^k (i + 1)b_{i + 1} a_{k - i} \iff k a_k = \sum_{i = 1}^k i b_i a_{k + 1 - i} \]

将 \(b_k\) 单独提出来:

\[k a_1 b_k = k a_k - \sum_{i = 1}^{k - 1} i b_i a_{k + 1 - i} \]

如果我们已知 \(b_{[1, k)}\),那么就可以通过上式推出 \(b_k\)。

同样可以利用半在线卷积优化到 \(O(n \log^2 n)\)。

多项式 \(\exp\)

类似的考虑:

\[B(x) = e^{A(x)} \iff \ln B(x) = A(x) \iff \frac {B'(x)}{B(x)} = A'(x) \iff B'(x) = A'(x) B(x) \]

将系数提取出来:

\[(k + 1) b_{k + 1} = \sum_{i = 0}^k (i + 1) a_{i + 1} b_{k - i} \]

将下标平移一下:

\[k b_k = \sum_{i = 1}^k i a_i b_{k - i} \]

如果我们已知 \(b_{[0, k)}\),那么就可以通过上式推出 \(b_k\)。

同样可以利用半在线卷积优化到 \(O(n \log^2 n)\)(Ctrl-C + Ctrl-V

半在线卷积

看了怎么久,来学学半在线卷积吧!

半在线卷积其实就是……多项乘法上的 cdq 分治!

没啥好说的,呱。

作者有话说

看看多项式板子有多长,比线粒体还长!用 \(O(n^2)\) 代码短,不容易错,还不受模数的限制!

反正省选什么的也不会考 NTT,但是会考多项式,所以学一学总是好的。

标签:在线,卷积,多项式,sum,iff,41,算法
From: https://www.cnblogs.com/jeefy/p/17850120.html

相关文章

  • JVM学习记录三(垃圾回收器之标记法及回收算法)
    先了解为什么样的垃圾会被回收,哪里的垃圾回收的是堆内垃圾,当对象没有任何引用指向,那就是垃圾,就有可能被回收回去怎么定位是可需要被回收的垃圾引用计数法:当对象被引用一次那就增加一个一个引用次数,如果未被引用过,则引用次数为0,不过可能会存在循环引用,出现内存泄露的问题可达性计数......
  • EEEN30141 Concurrent Systems
    该课程分为三个部分,将四个部分合在一起进行模拟百米短跑接力赛。比赛由NO_TEAMS参赛队和每个团队都有NO_MEMBERS成员。NO_TEAMS和NO_MEMBERS都是四个。课程的三个部分如下:•第1部分:这涉及创建和启动一个二维数组线程,每个线程代表一个runner,询问线程属性,以及使用随机数和时间......
  • 羚通视频智能分析平台烟雾火焰识别算法 安防视频监控森林防火烟雾火焰算法识别
    随着科技的飞速发展,人工智能技术已经深入到各个领域,其中安防视频监控是其重要的应用场景之一。在众多安防视频监控应用中,森林防火烟雾火焰识别尤为重要,因为森林火灾的发生往往会带来巨大的生态破坏和人员伤亡。为了更有效地预防和控制森林火灾,羚通视频智能分析平台推出了一款具有......
  • 羚通视频智能分析平台烟雾火焰识别算法 安防视频监控森林防火烟雾火焰算法识别
    随着科技的飞速发展,人工智能技术已经深入到各个领域,其中安防视频监控是其重要的应用场景之一。在众多安防视频监控应用中,森林防火烟雾火焰识别尤为重要,因为森林火灾的发生往往会带来巨大的生态破坏和人员伤亡。为了更有效地预防和控制森林火灾,羚通视频智能分析平台推出了一款具有高......
  • 算法学习笔记(40): 具体数学
    具体数学本文是阅读《具体数学》产生的理解性文本,并且涵盖了部分其他相关的内容。不怎么重要或者太难的东西因为时间问题,我略过了。本文来之不易,请勿机械搬运:原文地址-https://www.cnblogs.com/jeefy/p/17848037.html目录具体数学第二章-和式和式的处理有限微积分分部求和......
  • 【Unity】伪随机算法之PRD
    概念在游戏制作中通常会有暴击等概率性事件,有两种方法实现,一种就是正常使用随机算法实现,真随机受人品影响,对游戏体验极不友好,所以就提出了伪随机概念,常见的就是PRD算法。P(N)=C*NP为最终概率C为概率增量N为次数随着攻击次数增加概率增加,当暴击时将N重置为1,没有......
  • 羚通视频智能分析平台人员入侵算法识别 重点区域人员徘徊视频监控算法检测
    羚通视频智能分析平台是一款专门用于视频监控进行算法分析、识别的工具,具备识别监控区域内行人入侵的功能。一旦检测到入侵行为,系统会立即触发报警,并通过声光电等方式提醒安全人员采取相应措施。在实际应用中,例如工厂区域,该平台的识别率在复杂场景中超过90%,为用户提供了高度可......
  • FP-Growth算法全解析:理论基础与实战指导
    本篇博客全面探讨了FP-Growth算法,从基础原理到实际应用和代码实现。我们深入剖析了该算法的优缺点,并通过Python示例展示了如何进行频繁项集挖掘。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室......
  • 【算法】状态之美,TCP/IP状态转换探索
    最近城市里甲流肆虐,口罩已经成为了出门必备的物品。小悦也不得不开始采取防护措施,上下班过程中,将口罩戴起来以保护自己不受病毒的侵害。每天下班后,小悦总是喜欢投入到自己的兴趣爱好中,她热衷于翻阅与IT相关的资料,希望能够更深入地了解计算机科学。而她的大学同学小欣,则总是拿她开......
  • Fase算法
    ......