快速数论变换
文章平均质量分 59
Fat_tu
这个作者很懒,什么都没留下…
展开
-
洛谷3711:仓鼠的数学题(NTT+伯努利数)
题面 题意:给出a数组,求 ∑nk=0Sk(x)ak\sum_{k=0}^nS_k(x)a_k 所表示多项式的每一项系数。额,直接将伯努利数带进S里,得 =∑k=0nakk+1∑g=0kCgk+1Bgxk+1−g=\sum_{k=0}^n\frac{a_k}{k+1}\sum_{g=0}^k C_{k+1}^g B_g x^{k+1-g}=∑k=0nakk!∑g=0nBgg!xk+1−原创 2018-01-20 10:36:32 · 483 阅读 · 0 评论 -
51Nod1752:哈希统计(dp+ntt+倍增)
题面动态规划设f[i][j]为长为i,哈希值为j的方案数f[i][j]为长为i,哈希值为j的方案数f[i][j]为长为i,哈希值为j的方案数 g[i][j]g[i][j]g[i][j]为长小于等于i,哈希值为j的方案数有 ∑s=azf[i+1][j∗base+s]+=f[i][j]∑s=azf[i+1][j∗base+s]+=f[i][j]\sum_{s=a}^{z}f[i+1...原创 2018-03-26 20:26:36 · 263 阅读 · 0 评论 -
[AGC005F]:Many Easy Problems(NTT+容斥)
题面 题意:给出一棵树,若S为某个点集,f[S]为最小的包含S的联通块大小,对于所有1≤k≤n,求出在n个中选k个的CknCnkC_n^k种方案中,f之和。膜924844033 。额,根据套路,应该考虑每个点对每个k算贡献。 对于点x,它不属于联通块仅当所选的k个点没有路径跨过x。 设ai为以x为根的某棵子树的大小,故贡献为Ckn−∑ai∗CikCnk−∑ai∗CkiC_n^k-\sum...原创 2018-01-19 08:24:16 · 280 阅读 · 0 评论 -
洛谷4233:射命丸文的笔记 (dp+多项式求逆)
题面 题意:求n个点的强联通竞赛图的哈密顿回路条数的期望。和城市规划那题很像,应该打表扔oeis里也会有结果吧。f[n]f[n]f[n]为n个点的强联通竞赛图的个数,根据题解,有 f[n]=2C2n−∑i=1n−1f[i]⋅C(n,i)⋅2C2n−if[n]=2Cn2−∑i=1n−1f[i]⋅C(n,i)⋅2Cn−i2f[n]=2^{C_n^2}-\sum_{i=1}^{n-1}{f[...原创 2018-02-28 10:02:21 · 415 阅读 · 0 评论 -
BZOJ5093:图的价值(数学+ntt)
题面 题意:n个有标号点的图,问所有方案所有点度数的k次方的和。前置技能:用ntt求一行第二类斯特林数 S(k,p)=∑q=0p(−1)qq!∗(p−q)k(p−q)!S(k,p)=∑q=0p(−1)qq!∗(p−q)k(p−q)!S(k,p)=\sum_{q=0}^p\frac{(-1)^q}{q!}*\frac{(p-q)^k}{(p-q)!}设点的度数为d,则它的系数为n∗2(n...原创 2018-02-26 15:34:27 · 383 阅读 · 0 评论 -
BZOJ3160(NTT+manacher)
题面 题目定义的回文序列,指的是以某个位置(可以为间隙)为对称轴,左右两端对应位置相等的序列。 比如在串baababbbb中, b__bab__b是一个回文子序列 给你一个仅包含’a’和‘b’的字符串,问有多少个非连续的回文子序列。我对回文的认识只有manacher,能求出所有的回文串,显然回文串是连续的回文子序列,并不属于答案,大概是要最后减掉的。那么原问题就变成了问原串有多少个原创 2017-08-16 16:52:48 · 317 阅读 · 0 评论 -
BZOJ3992(NTT+DP+快速幂)
题面 题意是给你一个质数M,和一个元素都小于M 的集合,大小为S,用集合中的元素构成长度为N的序列(可以用重复的元素),使其乘积模M为x,问方案数,答案模479*2^21+1。 M这题一看就很套路,模数为费马素数,大概就和NTT有关吧。 先考虑简单的DP,设f[i][j]为长度为i的序列,乘积模M等于j的方案数 枚举k,有 f[i+1][j∗k模M]+=f[i][j]f[i+1][j原创 2017-08-17 09:29:08 · 375 阅读 · 0 评论 -
bzoj4555(数学推导+画柿子+NTT)
题面 今天学了多项式逆元,找到了这题。但是本蒟蒻觉得这题和逆元并没有什么关系,和逆元有关的题解也看不懂。。。 题目要你求这样一个函数,结果对一个费马素数取模。 S(i,j)为第二类斯特林数,题目还恶意地给出了递推公式。。。经过一顿百度,知道了第二类斯特林数是这样的 含义是将n个不同的元素拆分成m个集合的方案数,显然当m>n时,S(n,m)=0。所以原式首先可以写成 ans原创 2017-08-28 21:12:36 · 383 阅读 · 0 评论 -
bzoj3625(NTT+多项式求逆+多项式开根)
这题是我搜NTT搜到的,当时就看到“多项式开根”这样的标题,于是找到了L-leader的博客,补了下幂级数的东西,用两节数学课学会了。题面我再看题解,好像都是教我怎么开方,求逆的,然后又拖了几天。终于昨晚睡不着,突然就想到了。。。先介绍一下生成函数。 简单的说,就是一个数组a[0..n],可以生成一个多项式函数(幂级数)f(x)=∑i=0na[i]∗xif(x)=\sum_{原创 2017-09-02 22:18:13 · 1142 阅读 · 0 评论 -
cogs2287(组合数学+画柿子+NTT)
cogs都可以下数据的题,bzoj居然是权限题。 在某犇博客找到的,即使知道是ntt,刚看到时还是一脸懵逼,完全没头绪,所以就做了。题面 题意:某机器人一开始在(0,0),每一次操作可以向右,向左,向下,向上走或不走。不可以在某一次操作后坐标为负数。问n次操作,最后回到(0,0)的方案数,模一个费马素数。假设不可以不走,走n步(n为偶数),且只有一维,那就是一个卡特兰数。我依旧百度了一原创 2017-09-14 16:58:51 · 362 阅读 · 1 评论 -
Tyvj4879(dp+倍增+NTT)
题面 题意:有n组数,每个数为1到6,每组有m个,每组内不计顺序。问总共至少有x个6的方案数。模998244353。n,m≤400。看到这个熟悉的数字,大概就是个NTT了,然后考虑哪里有卷积。设g[i]为一组内有i个6的方案数,f[i]为两组内有i个6的方案数,有f[i]=∑j=0ig[j]∗g[i−j]f[i]=\sum_{j=0}^ig[j]*g[i-j] 就是个卷积了。对于有n组原创 2017-09-28 22:26:50 · 416 阅读 · 0 评论 -
bzoj3456/jzoj3303:城市规划(画柿子+多项式逆元+NTT)
我noip初赛最后半个小时就在数4个点的连通图有几个,结果还数错了…然后我就很膜拜这题,终于被我在jzoj找到了。权限题传送门题意:n个不同的点的构成的连通图有多少种,模一个费马素数。n≤2e5设f[i]为i个点的连通图方案数,思路为所有方案减去不合法的。所有方案数为2i∗(i−1)/22^{i*(i-1)/2}。 对于不连通的,枚举1号点所在连通块大小为j。选这剩下j-1个点的原创 2017-10-25 20:03:49 · 348 阅读 · 0 评论 -
BZOJ3684:大朋友和多叉树(拉格朗日反演+多项式逆元+ntt)
题面 题意:求出满足两个性质的有根多叉树的数量(结点无标号,孩子有顺序) ①共有 n 个叶子结点(n ≤ 1e5) ②每个非叶结点的儿子数量∈ S(1∉S)设答案为fi,f_i,生成函数为FF 它要么是叶子,f1=1f_1=1 要么有s∈Ss∈S个儿子,则F(x)=x+∑s∈SFsF(x)=x+\sum_{s∈S}F^s设集合SS的一般生成函数为TT 则F=x+T(F)F=x+原创 2018-01-23 10:44:05 · 402 阅读 · 0 评论 -
51nod 1258:序列求和 V4(伯努利数+多项式求逆+NTT+CRT)
题面 题意:求Sk(n)S_k(n) n≤1e18,k≤5e4。用多项式逆元求出伯努利数,代公式就可以了。 上维基查了下伯努利数,B+B^+与B−B^-的差别只是B1B_1的正负而已.但我依然不知道什么时候用哪个,两个都试一下,发现这题用B+B^+。所以我做这题是为了学CRT的。假设题意要求模P,三模数为p1,p2,p3。我起初还天真地以为可以算出分别模p1,p2,p3的原创 2018-01-22 16:59:15 · 438 阅读 · 0 评论 -
洛谷P4491:[HAOI2018]染色(容斥+ntt)
今年 HAOI 好强 题面设H=min(ns,m)H=min(ns,m)H=min(\frac{n}{s},m) 从0到H 枚举题意中的k 再枚举哪k种颜色,放哪里然后看题解剩下的就是m-k种颜色,n-sk个位置,恰好0种颜色出现恰好s次的方案数 额,容斥把恰好转为至少 就是枚举至少j种,哪j种,放哪里,剩下的随便放借(dao)鉴(yong)别人的柿子 ans=∑i=0...原创 2018-05-17 20:22:06 · 372 阅读 · 0 评论