分治FFT的三种含义
分治FFT是几个算法的统称。它们之间并无关联。
分治多项式乘法
问题如求\(\prod_{i=1}^na_ix+b\)。
若挨个乘复杂度为\(O(n^2\log n)\),可分治做这件事,复杂度为\(O(n\log^2 n)\)。采用这种算法的条件是最终乘出来的式子长度是\(O(n)\)的。
也可以用多项式ln和exp做到\(O(n\log n)\)。
用CDQ分治快速求一类多项式的算法
第一类
已知\(f(x)=\sum_{i=1}^xf(i)g(x-i)\),给定\(f(0)\)、\(g(1\cdots n)\),求\(f(n)\)。
CDQ分治,每次用\(f[l,mid]\)卷\(g[l,r]\)即可算出\(f[l,mid]\)对\(f[mid+1,r]\)的贡献。
复杂度\(O(n\log^2n)\)。
某些简单模型也可以用多项式求逆做到\(O(n\log n)\)。
第二类
已知\(f(x)=\sum_{i=1}^xf(i)f(x-i)\),给定\(f(0)\),求\(f(n)\)。
CDQ分治,每次计算完左区间后看\(l\)是否为\(0\),如果不是则先计算\(f[0,r-l]\)卷\(f[l,mid]\),它对\(f[mid+1,r]\)有\(2\)倍的贡献。然后再用\(f[l,mid]\)卷自己对\(f[mid+1,r]\)作贡献。
口诀:左起全长cont两倍
复杂度\(O(n\log^2 n)\)。
某些简单模型也可以用多项式开方做到\(O(n\log n)\)。
分治FFT的三种含义的更多相关文章
- Stack的三种含义
作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...
- Stack的三种含义(数据超过栈的大小,就发生stack overflow)
非常典型的基础知识,转自http://www.ruanyifeng.com/blog/2013/11/stack.html 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈& ...
- Stack的三种含义(转载--阮一峰)
作者: 阮一峰 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词其实有三种含义,适用于不同的场合 ...
- Stack栈的三种含义
理解stack栈对于理解程序的执行至关重要.easy混淆的是,这个词事实上有三种含义,适用于不同的场合,必须加以区分. 含义一:数据结构 stack的第一种含义是一组数据的存放方式,特点为LIFO,即 ...
- [转帖]Stack的三种含义
Stack的三种含义 http://www.ruanyifeng.com/blog/2013/11/stack.html 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈&q ...
- Stack的三种含义 ----超级经典 明白了 栈 的三种含义
来自:http://www.ruanyifeng.com/blog/2013/11/stack.html ----------------------------------------------- ...
- static在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数
C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域. 从作用域看: 全局变量具有全局作用域.全局变量只需在一个源文件 ...
- 对象的notify方法的含义和对象锁释放的三种情况
1,notify的含义 (1)notify一次只随机通知一个线程进行唤醒 (2)在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁, 要等到 ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
随机推荐
- 【Angular专题】 (3)装饰器decorator,一块语法糖
目录 一. Decorator装饰器 二. Typescript中的装饰器 2.1 类装饰器 2.2 方法装饰器 2.3 访问器装饰器 2.4 属性装饰器 2.5 参数装饰器 三. 用ES5代码模拟装 ...
- [转]BAT 批处理脚本 教程
第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以 ...
- JavaScript_02_JavaScript对象
ECMAScript标准中基本对象:Array,Boolean,Date,Math,Number,String,RegExp,Global Boolean,Date,Math,Number,Strin ...
- JQuery autocomplete获得焦点触发弹出下拉框
需求:autocomplete控件,当点击获得焦点的时候也要弹出下拉列表(autocomplete默认是输入之后才会跟随出下拉列表),下面直接贴代码. js代码: $("#customerN ...
- jsp基础语言-jsp异常
JSP异常 jsp页面执行时会出现两种异常,实际是javax.servlet.jsp包中的两类异常JsError和JspException. 1.JsError 在jsp文件转换成servlet文件时 ...
- Web前端:博客美化:三、右上角的Github Ribbon
1.保存图片到博客园相册 2.复制代码到可以放html代码的地方 我因为数量问题把这段sei到了 页首Html代码 <a href="https://github.com/zhengw ...
- Xaramin IOS 开发常见问题
调试时提示找不到obj某某文件,勾选后编译,再取消勾选后再次调试 APP不能上网(而且无法通过配置允许上网的APP,因为根本 找不到需要的APP),不要使用IOS11测试版本,自动禁网 截图路径 %U ...
- 章节九、3-Desired Capabilities介绍
一.Desired Capabilities是selenium webdrive中已经写好的一个类,我们可以通过它来告诉selenium webdrive在Desired Capabilities是什 ...
- GenericServlet 、Servlet和httpServler
-------[转] 1.GenericServlet类是所有Servlet类的祖先类. 2.HttpServlet类继承了GenericServlet类. 3.Servlet有两个非常重要的的对象, ...
- C#中的?和??,null和Nullable
from : https://www.cnblogs.com/appleyrx520/p/7018610.html C#单问号(?)与双问号(??) 1.单问号(?) 1.1 单问号运算符可以表示 ...