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

浙公网安备 33010602011771号