分治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 ...
随机推荐
- Oracle day05 建表_约束
表的创建 标准的建表语法 : CREATE TABLE [schema.] table (column datatype [DEFAULT expr], ... ); 使用子查询创建表的语法 CREA ...
- TiDB
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb.其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB ...
- C#面试分享:单例模式
C#面试分享:单例模式 提问1:请给出单例模式的实现: 答: public class Animal { private static Animal _instance = null; private ...
- 环境搭建 - Maven(Windows)
Maven环境搭建 本文以windows7下搭建Maven-3.5.0为示例 下载Maven压缩包 网址:Maven 非C盘根目录下新建文件夹:Maven D:\Maven 在Maven目录下新建文件 ...
- nodejs 搭建简易服务器
www文件夹下 template文件夹下 server.js代码: const express=require('express'); const static=require('express-st ...
- sqlserver操作geography方法
参考:https://www.cnblogs.com/ytwy/p/5977848.html http://desktop.arcgis.com/zh-cn/arcmap/latest/manage- ...
- <jsp:useBean>、<jsp:setProperty>与<jsp:getProperty>
<jsp:useBean>标签 会调用java对象的无参构造方法,来创建实例. <jsp:useBean>标签是用来搭配JavaBean元件的标准标签,这里指的JavaBean ...
- MySQL自增列(AUTO_INCREMENT)相关知识点总结
MySQL的自增列(AUTO_INCREMENT)和其它数据库的自增列对比,有很多特性和不同点(甚至不同存储引擎.不同版本也有一些不同的特性),让人感觉有点稍微复杂.下面我们从一些测试开始,来认识 ...
- linux备份还原命令
使用范围:1.可以作为系统还原点,还原到备份时的状态 2.系统完全损坏后无法启动,通过引导盘恢复 一.备份还原系统命令 方法一: 备份:tar cvpzf backup.tgz --exclude=/ ...
- postgreSQL备份数据
1.pg_dump 备份单一数据库 pg_dump仅导出数据库结构: pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1 2.全部备份采用pg_dumpall ...