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

摘要:题目链接 权限题 "BZOJ4332" 题解 容易想到dpg[i][j]表示前i人分到j颗糖的所有方案的乘积之和 设f(x)=Ox2+Sx+U g[i][j]=k=1j1g[i1][k]f(jk) 是一个卷 阅读全文
posted @ 2018-07-15 12:24 Mychael 阅读(303) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF528D" 题解 可以预处理出S每个位置能匹配哪些字符 对每种字符 构造两个序列 如果S[i]可以匹配该字符,则该位置为0,否则为1 如果T[i]可以匹配该字符,则该位置为1,否则为0T翻转一下做卷积 如果某个字符意义下的某个位置为1,就说明出 阅读全文
posted @ 2018-07-14 15:45 Mychael 阅读(267) 评论(0) 推荐(0) 编辑
摘要:任意模数NTT 众所周知,为了满足单位根的性质,NTT需要质数模数,而且需要能写成a2k+12kn 比较常用的有998244353,1004535809,469762049,这三个原根都是3 如果要任意模数怎么办? n次多项式在模m下乘积,最终 阅读全文
posted @ 2018-07-12 08:45 Mychael 阅读(2482) 评论(6) 推荐(4) 编辑
摘要:题目链接 "CF960G" 题解 同 "FJOI2016" 只不过数据范围变大了 考虑如何预处理第一类斯特林数 性质 xn¯=i=0n[ni]xi 分治$ 阅读全文
posted @ 2018-07-10 08:14 Mychael 阅读(409) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF993E" 题解 我们记小于x的位置为1,否则为0 区间由端点决定,转为两点前缀和相减 我们统计出每一种前缀和个数,记为A[i]表示值为i的位置出现的次数 那么对于k0ansk=xy=kA[x]A[y] 阅读全文
posted @ 2018-07-09 19:14 Mychael 阅读(400) 评论(0) 推荐(1) 编辑
摘要:题目链接 "洛谷P4233" 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有n!n种,剩余边随便连 所以总的贡献为 (n1)!2(n2)n 我们只需求出总的强联 阅读全文
posted @ 2018-07-09 10:07 Mychael 阅读(222) 评论(0) 推荐(0) 编辑
摘要:多项式除法解决这样一个问题: 有一个n次多项式A(x)和一个m次多项式B(x),你希望求得多项式Q(x)R(x),使得 A(x)=Q(x)B(x)+R(x) 其中degQnm,$deg_R include include include i 阅读全文
posted @ 2018-06-23 12:27 Mychael 阅读(659) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3509" 题解 化一下式子,就是 2A[j]=A[i]+A[k] 所以我们对一个位置两边的数构成的生成函数相乘即可 但是由于这样做是O(n2logn)的,我们考虑如何优化 显然可以分块做,我们不对所有数左右求卷积,只对B个块左右做,这样ik阅读全文
posted @ 2018-06-17 20:41 Mychael 阅读(213) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3771" 题解 做水题放松一下 先构造Aix指数的生成函数A(x) 再构造2Ai为指数的生成函数B(x) 再构造3Ai为指数的生成函数C(x) 那么只需计算 $$A(x) + \frac{A^2(x) B(x)}{2} + \frac{A^{ 阅读全文
posted @ 2018-06-17 15:34 Mychael 阅读(179) 评论(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 阅读(175) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3456" 题解 真是一道经典好题,至此已经写了分治NTT,多项式求逆,多项式求ln三种写法 我们发现我们要求的是大小为n无向联通图的数量 而n个点的无向图是由若干个无向联通图构成的 那么我们设F(x)为无向联通图数量的指数型生成函数 设G(x)为无向图数 阅读全文
posted @ 2018-06-15 16:34 Mychael 阅读(593) 评论(1) 推荐(0) 编辑
摘要:指数型生成函数 我们知道普通型生成函数解决的是组合问题,而指数型生成函数解决的是排列问题 对于数列{an},我们定义其指数型生成函数为 $$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 阅读(4558) 评论(0) 推荐(10) 编辑
摘要:题目链接 "BZOJ5093" 题解 点之间是没有区别的,所以我们可以计算出一个点的所有贡献,然后乘上n 一个点可能向剩余的n1个点连边,那么就有 $$ans = 2^{{n 1 \choose 2}}n \sum\limits_{i = 0}^{n 1} {n 1 \choose i} 阅读全文
posted @ 2018-06-15 11:33 Mychael 阅读(176) 评论(0) 推荐(0) 编辑
摘要:题目链接 "loj2541" 题解 思路很妙啊, 人傻想不到啊 觉得十分难求,考虑容斥 由于1号可能不是最后一个被杀的,我们容斥一下1号之后至少有几个没被杀 我们令A=i=1nwi,令S表示选出那几个在i之后的wi和 我们淘汰人 阅读全文
posted @ 2018-06-14 21:59 Mychael 阅读(672) 评论(0) 推荐(1) 编辑
摘要:题目链接 "hdu5279" 题解 给出若干个完全图,然后完全图之间首尾相连并成环,要求删边使得两点之间路径数不超过1,求方案数 容易想到各个完全图是独立的,每个完全图要删成一个森林,其实就是询问n个点有标号森林的个数 设f[i]表示i个点有标号森林的个数 枚举第一个点所在树大小,我 阅读全文
posted @ 2018-06-12 12:42 Mychael 阅读(142) 评论(0) 推荐(0) 编辑
摘要:题目链接 "ZOJ3899" 题解 比较累,做一道水题 还被卡常= = 我在ZOJ交过的两道NTT都被卡常了。。 哦,题意就是求第二类斯特林数,然后线段树维护一下集合数量就可以了 阅读全文
posted @ 2018-06-11 20:22 Mychael 阅读(122) 评论(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 阅读(228) 评论(0) 推荐(0) 编辑
摘要:题目链接 "ZOJ3874" 题意简述: 在一个序列中,两点间如果有边,当且仅当两点为逆序对 给定一个序列的联通情况,求方案数对786433取模 题解 自己弄了一个晚上终于弄出来了 首先yy一下发现一个很重要的性质: 联通块内的点编号必须是连续的 证明: 假设一个联通块编号不连续,设a阅读全文
posted @ 2018-05-30 22:17 Mychael 阅读(247) 评论(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 阅读(115) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3456" 题解 之前我们用分治nttO(nlog2n)的复杂度下做了这题,今天我们使用多项式求逆 设fn表示n个点带标号无向连通图数 设gn表示n个点图的数量,显然gn=2(n2) 枚举1号点所在联通块大小, 阅读全文
posted @ 2018-05-16 15:25 Mychael 阅读(165) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示