随笔分类 - 数学相关-卷积
摘要:[BZOJ3684]大朋友和多叉树(拉格朗日反演) 题面 给定整数和集合,求有个节点且每个非叶子节点的儿子数量的无标号有根树的数量。节点的孩子有顺序. 分析 设这些树的OGF为,根据定义,一棵树可
阅读全文
摘要:[LuoguP4841]城市规划(多项式ln+生成函数) 题面 求个顶点的有标号连通简单无向图的个数(简单指的是无重边自环)。() 分析 个点的简单无向图有个,设G是所有无向图,那么G的EGF为 \(G(x)=\sum_{n=0
阅读全文
摘要:再探快速傅里叶变换(其四) 多项式操作 省选前夕爆补一波多项式全家桶,存一些板子 多项式乘法 不解释。注意如果式子太复杂,直接全部DFT再按原式子算,最后IDFT。这里封装好是为了简化模板代码,而且可以方便的换成任意模数NTT void poly_mul(ll *a,ll *b,ll *c,int
阅读全文
摘要:
阅读全文
摘要:[Codeforces 553E]Kyoya and Train(期望DP+Floyd+分治FFT) 题面 给出一个个点条边的有向图(可能有环),走每条边需要支付一个价格,需要的时间为中随机的整数,时间为的概率为。从出发走到,如
阅读全文
摘要:[POJ 2821]TN's Kindom III(任意长度循环卷积的Bluestein算法) 题面 给出两个长度为的序列,已知和的循环卷积为,求. $n include include include define maxn (1real=x.real; t
阅读全文
摘要:再探快速傅里叶变换(FFT)学习笔记(其二)(NTT) 写在前面 为了不使篇幅过长,预计将把学习笔记分为四部分: DFT,IDFT,FFT的定义,实现与证明:快速傅里叶变换(FFT)学习笔记(其一) NTT的实现与证明:快速傅里叶变换(FFT)学习笔记(其二) 任意模数NTT与FFT的优化技巧 多项
阅读全文
摘要:[Codeforces 580D]Fizzy Search(FFT) 题面 给定母串和模式串,字符集大小为4,给定k,模式串在某个位置匹配当且仅当任意位置模式串的这个字符所对应的母串的位置的左右k个字符之内有一个与它相同的,求模式串能全部匹配的次数。 分析 我们先考虑的情况,即一般的字符串
阅读全文
摘要:再探快速傅里叶变换(FFT)学习笔记(其一) 写在前面 为什么写这篇博客 笔者去年暑假刚刚学习过FFT,NTT的一些基础应用。但当时对FFT和NTT的理解还不够深入。本博客参考2016年国家集训队论文中雅礼中学毛啸的《再探快速傅立叶变换》,对之前学习时的不足之处做了补充。 为了不使篇幅过长,预计将把
阅读全文
摘要:[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于 质数 M的非负整数。他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S。小C用这个生成器生成了许多这样的数列。但是小C有一个问题需要你的帮助:
阅读全文
摘要:[BZOJ5306] [HAOI2018]染色(容斥原理+NTT) 题面 一个长度为 n的序列, 每个位置都可以被染成 m种颜色中的某一种. 如果n个位置中恰好出现了 S次的颜色有 K种, 则小 C 会产生 的愉悦度. 求对于所有可能的染色方案, 他能获得的愉悦度的和。答案对 100453
阅读全文
摘要:[BZOJ 3456]城市规划(cdq分治+FFT) 题面 求有标号n个点无向连通图数目. 分析 设表示个点组成的无向连通图数量,表示个点的图的数量。 显然种,但是我们要把不联通的去掉。 枚举1号点所在联通块大小.从剩下$i
阅读全文
摘要:[BZOJ 3625] [Codeforces 438E] 小朋友的二叉树 (DP+生成函数+多项式开根+多项式求逆) 题面 一棵二叉树的所有点的点权都是给定的集合中的一个数。 让你求出1到m中所有权值为i的二叉树的个数。 两棵树不同当且仅当树的形态不一样或者是树的某个点的点权不一样 分析 设$c(
阅读全文
摘要:[BZOJ 3509] [CodeChef] COUNTARI (FFT+分块) 题面 给出一个长度为n的数组,问有多少三元组满足$i include include include define maxn 200000 using namespace std; typedef l
阅读全文
摘要:[BZOJ 3771] Triple(FFT+生成函数) 题面 给出 n个物品,价值为别为且各不相同,现在可以取1个、2个或3个,问每种价值和有几种情况? 分析 这种计数问题容易想到生成函数。 设生成函数,指数为价值,系数为选的方案
阅读全文
摘要:[BZOJ3451]Normal(点分治+FFT) 题面 给你一棵 n个点的树,对这棵树进行随机点分治,每次随机一个点作为分治中心。定义消耗时间为每层分治的子树大小之和,求消耗时间的期望。 分析 根据期望的线性性,答案是$\sum_{i=1}^n(i的期望子树大小)=\sum_{i=1}^n \su
阅读全文