zoukankan      html  css  js  c++  java
  • 算法记录 003:高斯消元算多项式乘法

    实用算法 003:高斯消元算多项式乘法

    众所周知ntt/fft是目前已知的时间复杂度最优的多项式乘法算法。

    那为什么我们还需要知道这个方法呢?

    考虑这个问题:

    (n)个多项式(p_1,p_2,p_3...p_n)。和一个目标多项式(q),初始(q=1)

    (q)次操作:(mul i)

    表示令(q=q imes p_i)

    最后输出(q)的前(a)次项系数。(保证乘法过程中大于a次项系数都为0)

    直接fft/ntt时间复杂度为(O(aqlog a))。但是fft/ntt的常数巨大,经常会TLE。

    下面介绍一种小常数(O(a^3+a imes q))的做法。

    设最终的多项式(q=sum a_{i} imes x^i)

    我们若令(x=1,2,3,4...a),然后将(x^i)看作常数,(a_i)看作未知数,列出(a)个方程,然后高斯消元即可。可以发现最终的矩阵一定是非奇异的,所以方程一定存在唯一解。

    适用范围:

    乘法次数多,系数非0的项的个数比较少。

    题目: cf917d

  • 相关阅读:
    简单的逻辑学 笔记
    中国古代文化常识 笔记
    Docker 使用官方镜像
    Docker 入门 之基本命令
    Windows.form增删改查
    自定义控件
    LISTVIEW
    窗体布局
    计算器
    登录
  • 原文地址:https://www.cnblogs.com/gary-2005/p/14242812.html
Copyright © 2011-2022 走看看