随笔分类 -  数论/数学-多项式fft,NTT

摘要:题目链接 权限题 "BZOJ4332" 题解 容易想到$dp$ 设$g[i][j]$表示前$i$人分到$j$颗糖的所有方案的乘积之和 设$f(x) = Ox^2 + Sx + U$ $$g[i][j] = \sum\limits_{k = 1}^{j 1}g[i 1][k]f(j k)$$ 是一个卷 阅读全文
posted @ 2018-07-15 12:24 Mychael 阅读(313) 评论(0) 推荐(0)
摘要:题目链接 "CF528D" 题解 可以预处理出$S$每个位置能匹配哪些字符 对每种字符 构造两个序列 如果$S[i]$可以匹配该字符,则该位置为$0$,否则为$1$ 如果$T[i]$可以匹配该字符,则该位置为$1$,否则为$0$ 将$T$翻转一下做卷积 如果某个字符意义下的某个位置为$1$,就说明出 阅读全文
posted @ 2018-07-14 15:45 Mychael 阅读(276) 评论(0) 推荐(0)
摘要:任意模数$NTT$ 众所周知,为了满足单位根的性质,$NTT$需要质数模数,而且需要能写成$a2^{k} + 1$且$2^k \ge n$ 比较常用的有$998244353,1004535809,469762049$,这三个原根都是$3$ 如果要任意模数怎么办? $n$次多项式在模$m$下乘积,最终 阅读全文
posted @ 2018-07-12 08:45 Mychael 阅读(2583) 评论(6) 推荐(4)
摘要:题目链接 "CF960G" 题解 同 "FJOI2016" 只不过数据范围变大了 考虑如何预处理第一类斯特林数 性质 $$x^{\overline{n}} = \sum\limits_{i = 0}^{n}\begin{bmatrix} n \\ i \end{bmatrix}x^{i}$$ 分治$ 阅读全文
posted @ 2018-07-10 08:14 Mychael 阅读(415) 评论(0) 推荐(0)
摘要:题目链接 "CF993E" 题解 我们记小于$x$的位置为$1$,否则为$0$ 区间由端点决定,转为两点前缀和相减 我们统计出每一种前缀和个数,记为$A[i]$表示值为$i$的位置出现的次数 那么对于$k 0$有 $$ans_k = \sum\limits_{x y = k} A[x]A[y]$$ 阅读全文
posted @ 2018-07-09 19:14 Mychael 阅读(400) 评论(0) 推荐(1)
摘要:题目链接 "洛谷P4233" 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有$\frac{n!}{n}$种,剩余边随便连 所以总的贡献为 $$(n 1)!2^{{n \choose 2} n}$$ 我们只需求出总的强联 阅读全文
posted @ 2018-07-09 10:07 Mychael 阅读(236) 评论(0) 推荐(0)
摘要:多项式除法解决这样一个问题: 有一个$n$次多项式$A(x)$和一个$m$次多项式$B(x)$,你希望求得多项式$Q(x)$和$R(x)$,使得 $$A(x) = Q(x)B(x) + R(x)$$ 其中$deg_Q \le n m$,$deg_R include include include i 阅读全文
posted @ 2018-06-23 12:27 Mychael 阅读(674) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3509" 题解 化一下式子,就是 $$2A[j] = A[i] + A[k]$$ 所以我们对一个位置两边的数构成的生成函数相乘即可 但是由于这样做是$O(n^2logn)$的,我们考虑如何优化 显然可以分块做,我们不对所有数左右求卷积,只对$B$个块左右做,这样$i$和$k$都 阅读全文
posted @ 2018-06-17 20:41 Mychael 阅读(234) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3771" 题解 做水题放松一下 先构造$A_i$为$x$指数的生成函数$A(x)$ 再构造$2A_i$为指数的生成函数$B(x)$ 再构造$3A_i$为指数的生成函数$C(x)$ 那么只需计算 $$A(x) + \frac{A^2(x) B(x)}{2} + \frac{A^{ 阅读全文
posted @ 2018-06-17 15:34 Mychael 阅读(193) 评论(0) 推荐(0)
摘要:题目链接 "洛谷T30212" 题解 式子很容易推出来,二项式定理展开后对于$k$的答案即可化简为如下: $$k!(\sum\limits_{i = 0}^{k} \frac{\sum\limits_{x = 1}^{n} a_x^{i}}{i!} \centerdot \frac{\sum\lim 阅读全文
posted @ 2018-06-15 19:02 Mychael 阅读(182) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3456" 题解 真是一道经典好题,至此已经写了分治$NTT$,多项式求逆,多项式求$ln$三种写法 我们发现我们要求的是大小为$n$无向联通图的数量 而$n$个点的无向图是由若干个无向联通图构成的 那么我们设$F(x)$为无向联通图数量的指数型生成函数 设$G(x)$为无向图数 阅读全文
posted @ 2018-06-15 16:34 Mychael 阅读(606) 评论(1) 推荐(0)
摘要:指数型生成函数 我们知道普通型生成函数解决的是组合问题,而指数型生成函数解决的是排列问题 对于数列$\{a_n\}$,我们定义其指数型生成函数为 $$G(x) = a_0 + a_1x + a_2\frac{x^2}{2!} + a_3\frac{x^3}{3!} + a_4\frac{x^4}{4 阅读全文
posted @ 2018-06-15 16:11 Mychael 阅读(4704) 评论(0) 推荐(10)
摘要:题目链接 "BZOJ5093" 题解 点之间是没有区别的,所以我们可以计算出一个点的所有贡献,然后乘上$n$ 一个点可能向剩余的$n 1$个点连边,那么就有 $$ans = 2^{{n 1 \choose 2}}n \sum\limits_{i = 0}^{n 1} {n 1 \choose i} 阅读全文
posted @ 2018-06-15 11:33 Mychael 阅读(186) 评论(0) 推荐(0)
摘要:题目链接 "loj2541" 题解 思路很妙啊, 人傻想不到啊 觉得十分难求,考虑容斥 由于$1$号可能不是最后一个被杀的,我们容斥一下$1$号之后至少有几个没被杀 我们令$A = \sum\limits_{i = 1}^{n} w_i$,令$S$表示选出那几个在$i$之后的$w_i$和 我们淘汰人 阅读全文
posted @ 2018-06-14 21:59 Mychael 阅读(678) 评论(0) 推荐(1)
摘要:题目链接 "hdu5279" 题解 给出若干个完全图,然后完全图之间首尾相连并成环,要求删边使得两点之间路径数不超过$1$,求方案数 容易想到各个完全图是独立的,每个完全图要删成一个森林,其实就是询问$n$个点有标号森林的个数 设$f[i]$表示$i$个点有标号森林的个数 枚举第一个点所在树大小,我 阅读全文
posted @ 2018-06-12 12:42 Mychael 阅读(154) 评论(0) 推荐(0)
摘要:题目链接 "ZOJ3899" 题解 比较累,做一道水题 还被卡常= = 我在$ZOJ$交过的两道$NTT$都被卡常了。。 哦,题意就是求第二类斯特林数,然后线段树维护一下集合数量就可以了 阅读全文
posted @ 2018-06-11 20:22 Mychael 阅读(132) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3451" 题解 考虑每个点产生的贡献,即为该点在点分树中的深度期望值 由于期望的线性,最后的答案就是每个点贡献之和 对于点对$(i,j)$,考虑$j$成为$i$祖先的概率,记为$P(i,j)$ 那么 $$ans = \sum\limits_{i = 1}^{n}\sum\lim 阅读全文
posted @ 2018-06-10 11:46 Mychael 阅读(239) 评论(0) 推荐(0)
摘要:题目链接 "ZOJ3874" 题意简述: 在一个序列中,两点间如果有边,当且仅当两点为逆序对 给定一个序列的联通情况,求方案数对$786433$取模 题解 自己弄了一个晚上终于弄出来了 首先$yy$一下发现一个很重要的性质: 联通块内的点编号必须是连续的 证明: 假设一个联通块编号不连续,设$a$, 阅读全文
posted @ 2018-05-30 22:17 Mychael 阅读(257) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ4503" 题解 水水题。 和残缺的字符串那题几乎是一样的 同样转化为多项式 同样TLE 同样要手写一下复数才A C++ include include include include include include include define Redge(u) for (in 阅读全文
posted @ 2018-05-30 19:21 Mychael 阅读(123) 评论(0) 推荐(0)
摘要:题目链接 "BZOJ3456" 题解 之前我们用分治$ntt$在$O(nlog^2n)$的复杂度下做了这题,今天我们使用多项式求逆 设$f_n$表示$n$个点带标号无向连通图数 设$g_n$表示$n$个点图的数量,显然$g_n = 2^{{n \choose 2}}$ 枚举$1$号点所在联通块大小, 阅读全文
posted @ 2018-05-16 15:25 Mychael 阅读(172) 评论(0) 推荐(0)