每次问NC做多项式的题需要什么知识点。

各种数。

各种反演。

多项式全家桶。

然后我就一个一个地学知识点。然而还差好多,学到后面的前面的已经忘了(可能是我太菜吧不是谁都是NC啊)

然后发现每个知识点基本只做一道题,肯定会忘,所以再归纳一下。

不附证明只写结论以便查阅,如果需要证明还是自行百度。

第一类斯特林数

  • 含义:$\left[ ^k_n \right]$表示讲n个元素划分为k个环的方案数。
  • 递推公式:$\left[ ^k_n \right] = \left[ ^k_{n-1} \right] \times (n-1)+ \left[ ^{k-1}_{n-1} \right]$
  • 求一行:$\left[ ^k_n \right]$是多项式$f_n(x) = \prod\limits_{i=0}^{n-1} (x+i)$的k次项系数。这个多项式乘法可以进行分治递归求解,复杂度$O(nlog^2n)$。存在$O(nlogn)$的做法,比较复杂,贴一个链接
  • 应用:$x^{\overline{n}}=\sum\limits_{k=0}^{n} \left[ ^k_n \right] x^k$。比较少见。

第二类斯特林数

  • 含义:$\left\{ ^k_n \right\}$表示讲n个元素划分为k个集合的方案数。
  • 递推公式:$\left\{ ^k_n \right\} =\left\{ ^k_{n-1} \right\} \times k+ \left\{ ^{k-1}_{n-1} \right\}$
  • 求单点/一行:$\left \{ ^n_k \right \}=\sum\limits_{i=0}^{k} \frac{(-1)^{k-i} \times i^n}{(k-i)! \times i!}$。单点直接$O(n)$枚举,一行的话NTT算卷积。
  • 应用:$x^n=\sum\limits_{i=0}^{n} \left \{ ^n_k \right \} \times \frac{x!}{(x-i)!}$。
  • 例题:《图的价值》

伯努利数

  • 含义:$\sum\limits_{i=1}^{n} i^d = \frac{1}{d+1} \sum\limits_{i=0}^{d} C_{d+1}^{i} B_i n^{d+1-i} $。其中的系数$B_i$就是伯努利数。
  • 递推公式:$ \sum\limits_{k=0}^{n} C_{n+1}^{k} \times B_k =0 $ 。复杂度是$O(n^2)$的。
  • 求值:运用多项式求逆可以做到$O(nlogn)$。然而我还不会,贴一个链接
  • 应用:自然数幂和(常用)。与两类斯特林数可以转化。
  • 例题:《一个人的数论》其实这个题并不很伯努利但是我做题太少。。。

莫比乌斯函数

  • 含义:$\mu(prime)=-1$,$\mu(i^2 \times x)=0$,else $\mu(x)=1$
  • 求值:线筛。杜教筛求前缀和。
  • 应用:容斥系数,莫比乌斯反演。
  • 例题:太多。

欧拉函数

  • 含义:比x小且与x互质的数的个数
  • 求值:线筛。
  • 应用:容斥系数,欧拉反演。
  • 例题:不少。

反演(个人理解)

  • 含义:你现在有用g函数得到f函数的公式,把它转化为用f函数表示g函数的形式。
  • 基本形式:$f(n) = \sum\limits_{condition1} g(i) \Leftrightarrow g(n)=\sum\limits_{condition2} f(i)$

二项式反演

  • 基本形式:$f(n)=\sum\limits_{i=0}^{n}  (-1)^{i} \times C_n^i \times g(i) \Leftrightarrow g(n)=\sum\limits_{i=0}^{n}  (-1)^{i} \times C_n^i \times f(i)$
  • 常用形式:$f(n)=\sum\limits_{i=0}^{n} C_n^i \times g(i) \Leftrightarrow g(n)=\sum\limits_{i=0}^{n}  (-1)^{n-i} \times C_n^i \times f(i)$
  • 应用:证明其它反演,化简带组合数的式子。
  • 例题:《染色》

莫比乌斯反演

  • 基本形式:$f(n)=\sum\limits_{d|n} g(d) \Leftrightarrow g(n) = \sum\limits_{d|n} f(d) \times \mu(\frac{n}{d})$
  • 常用形式:$[n]=\sum\limits_{d|n} \mu(d)$。
  • 应用:gcd/lcm之类的有关倍数,因子之类的题目。
  • 例题:《一个人的数论》

欧拉反演

  • 基本形式:$n=\sum\limits_{d|n} \phi(d)$
  • 应用:gcd/lcm之类的玩意。

子集反演

  • 基本形式:$f(S)=\sum\limits_{T \subseteq S} g(T) \Leftrightarrow g(S) = \sum\limits_{T \subseteq S} (-1)^{|S|-|T|}\times f(T)$
  • 应用:与FWT结合求解子集类问题。
  • 例题:《遗失的答案》(还不会做正在学习)

待补。。。

各种数和各种反演(所谓FFT的前置知识?)的更多相关文章

  1. fft.ntt,生成函数,各种数和各种反演

    前置知识: 一,导数 倒数其实就是函数的斜率函数 设D[f(x)]表示f(x)的导数,则满足 $$1,D[f(x)]=\lim\limits_{\delta x->\infty}\frac{f( ...

  2. 有标号DAG计数 [容斥原理 子集反演 组合数学 fft]

    有标号DAG计数 题目在COGS上 [HZOI 2015]有标号的DAG计数 I [HZOI 2015] 有标号的DAG计数 II [HZOI 2015]有标号的DAG计数 III I 求n个点的DA ...

  3. FFT,NTT入门

    目录 -1.前置知识 复数 单位根 单位根反演 0.卷积 1.FFT -1.前置知识 复数   复数单位\(i\):定义为\(i^2=-1\).\(i\)可以直接参与运算.   复数:形如\(z=a+ ...

  4. 很详细的FFT(快速傅里叶变换)概念与实现

    FFT 首先要说明一个误区,很多人认为FFT只是用来处理多项式乘的,其实FFT是用来实现多项式的系数表示法和点值表示法的快速转换的,所以FFT的用处远不止多项式乘. FFT的前置知识:点值表示法,复数 ...

  5. ZJOI 2019 划水记

    作为一个极其蒟蒻的OIer,虽然没有省选资格但还是去见见世面. ZJOI2019一试是在浙江省镇海中学.听名字就很霸气. 学习OI的最后一年,记录下一些事情,即使最终走到最后也一无所获,也是一段美好的 ...

  6. 多项式fft、ntt、fwt 总结

    做了四五天的专题,但是并没有刷下多少题.可能一开始就对多项式这块十分困扰,很多细节理解不深. 最简单的形式就是直接两个多项式相乘,也就是多项式卷积,式子是$N^2$的.多项式算法的过程就是把卷积做一种 ...

  7. 全网第二好懂的FFT(快速傅里叶变换)

    声明:本FFT是针对OI的.专业人员请出门左拐. Ⅰ前言 很久以前,我打算学习FFT. 然而,算法导论讲的很详细,却看不懂.网上博客更别说了,什么频率之类的都来了.我暗自下了决心:写一篇人看得懂的FF ...

  8. 浅谈FFT(快速傅里叶变换)

    前言 啊摸鱼真爽哈哈哈哈哈哈 这个假期努力多更几篇( 理解本算法需对一些< 常 用 >数学概念比较清楚,如复数.虚数.三角函数等(不会的自己查去(其实就是懒得写了(¬︿̫̿¬☆) 整理了一 ...

  9. [学习笔记] 多项式与快速傅里叶变换(FFT)基础

    引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...

随机推荐

  1. nmap扫描进阶、msfconsole攻击入门(网安全实训第二天)

    本期内容:nmap扫描.msfconsole攻击入门 1. nmap扫描进阶 2.msfconsole攻击入门 1.nmap扫描进阶 (1)nmap命令 nmap --sP -iL abin.txt ...

  2. 小白学 Python 爬虫(20):Xpath 进阶

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. JS内置对象-Array之indexOf和lastIndexOf

    indexOf() var num = [1, 7, 2, 3, 4, 7, 9] var pos = num.indexOf(7) var pos1 = num.indexOf(7, 2) cons ...

  4. 解决问题的能力 > 10倍程序员

    如果第二次看到我的文章,欢迎右侧扫码订阅我哟~ 

  5. java基础-类成员访问权限控制

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...

  6. ubifs开销测试

    问题 在板子上观察到56M的ubi卷,挂载上ubifs之后,df -h显示可用空间约为50M. 如此计算开销超过了10%,那么这个开销随容量如何变化呢,是固定为10%吗还是有其他规律? 理论计算 简单 ...

  7. Android 项目优化(三):MultiDex 优化

    在整理MultiDex优化之前,先了解一下Apk的编译流程,这样有助于后面针对MultiDex优化. 一.Apk 编译流程 Android Studio 按下编译按钮后发生了什么? 1. 打包资源文件 ...

  8. ORACLE各种对象、概念及关系整理(一文读懂)

    下面是我整理(抄袭)的一些Oracle数据库相关概念对象的理解,如有疏漏,欢迎指正.至于整理这篇文章的目的:主要是网上的内容太散了,这样整理一遍可以加深理解,也便于后续查阅.就我的理解:下述内容应该可 ...

  9. android studio 常见编译问题及解决思路总结

    问题一:编译运行成功后放置一段时间后再运行会报错 这个问题让我纠结了不少时间,最后才发现遇到类似的错误,clear一下project就好了.这个一般是上次生成的临时文件和这次的有冲突造成的. 问题二: ...

  10. mitmproxy 使用笔记

    零.背景 我之前写过关于 charles 的使用笔记,为什么现在又要来写同类型的 mitmproxy 工具呢?下面我会娓娓道来他比 charles 多出的强大功能. 一.介绍 mitmproxy 是一 ...