随笔分类 -  数论——FFT/NTT/多项式/生成函数

摘要:XIV.CF553E Kyoya and Train 题解 阅读全文
posted @ 2021-04-01 20:23 Troverld 阅读(20) 评论(0) 推荐(0) 编辑
摘要:XIII.CF623E Transforming Sequence 这题仔细一想还挺简单的……但是我一直在想有标号的DP,但实际上只需要用无标号DP即可…… 首先,一眼可以看出当n>k时无解,可以直接特判掉。 则我们设f[i][j]表示当前填到第i个数,且前i个数$\operator 阅读全文
posted @ 2021-04-01 20:22 Troverld 阅读(31) 评论(0) 推荐(0) 编辑
摘要:XII.差分与前缀和 打 表 出 奇 迹 我们先考虑前缀和。 对于两个下标i,j,我们考虑k阶前缀和后,位置j会被加上多少个ai。显然,加上ai的数量,仅与ji的值有关。 于是我们就打表辣 k \ ji 0 1 2 3 4 1 1 1 1 1 1 2 阅读全文
posted @ 2021-04-01 20:19 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:XI.CF438E The Child and Binary Tree 经 典 老 题 我们可以设一个G,其中Gx=[ i ci=x],即是否存在x这个值。 我们再设Fx表示权值为x的二叉树的方案数。很明显有F0=1。 则我们枚举树根的 阅读全文
posted @ 2021-04-01 20:14 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:XI.[集训队作业2013]城市规划 各类计数问题是多项式最常见的场景。 这里有一个套路,就是设f(x)为合法个数,g(x)为全部个数,然后往往g可以被fg表示出来,且g本身有通项公式,然后就可以简单求解了。 例如这题。我们设f(x)为联通图个数,g(x)为全部无向 阅读全文
posted @ 2021-04-01 20:13 Troverld 阅读(38) 评论(0) 推荐(0) 编辑
摘要:X.拉格朗日插值2 从这题开始,拉格朗日插值就逐渐同多项式同流合污了。 我们列出式子: f(m+i)=j=0nf(j)kjm+ikjk 借鉴前面的思想,我们将它转成了 \(f(m+i)=\sum\l 阅读全文
posted @ 2021-04-01 20:10 Troverld 阅读(86) 评论(0) 推荐(0) 编辑
摘要:IX.CF622F The Sum of the k-th Powers 看上去这题是上一题的弱化版,但其实不是——上题我们要筛出式子,但是这题我们要保证复杂度。 首先,我们打算选取0k+1,共k+2个点进行插值。我们设fx=xik。 则由拉格朗日插 阅读全文
posted @ 2021-04-01 20:05 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:VIII.[TJOI2018]教科书般的亵渎 这题主要是介绍拉格朗日插值模板那题中,我们提到的“求出f(x)的多项式表达”的做法。 首先,这题显然如果我们令f(x)=im+1,且am+1=n+1的话,答案就是 \(\sum\limits_{i=1}^{m 阅读全文
posted @ 2021-04-01 20:03 Troverld 阅读(85) 评论(0) 推荐(0) 编辑
摘要:VII.【模板】拉格朗日插值 我们之前一直在研究多项式。但是多项式都是从哪来的呢? 所以拉格朗日插值就给了我们一种求多项式的方式。具体而言,运用拉格朗日插值,你可以根据n+1个点求出一个n次多项式来经过这所有点。 我们来看一下这具体是怎么实现的。 我们定义拉格朗日基本多项式为: \(\box 阅读全文
posted @ 2021-04-01 20:00 Troverld 阅读(236) 评论(0) 推荐(0) 编辑
摘要:namespace Poly{ const int N=1<<20; const int mod=998244353; const int G=3; int n,rev[N],f[N],g[N],all; int ksm(int x,int y){ int rt=1; for(;y;x=(1llxx 阅读全文
posted @ 2021-04-01 19:57 Troverld 阅读(36) 评论(0) 推荐(0) 编辑
摘要:VII.【模板】多项式除法 首先,为了方便,我们将nm各自加一。 我们设FTF的翻转,更准确的定义为 FT(x)=xn1F(1x) 现在我们考虑推式子。 由题意, F(x)=(GQ)(x)+R(x) 因为这个x是无实意的,故我们 阅读全文
posted @ 2021-04-01 19:54 Troverld 阅读(180) 评论(0) 推荐(0) 编辑
摘要:VII.【模板】多项式幂函数 (加强版) 可以看到这题与上题的唯一区别就是a0的取值。 因为我们之前在ln的时候,是要求a0=1的;而这题不保证a0=1,咋办呢? 我们考虑到当a00时,我们有 \(a^k=(\dfrac{a}{a_0})^k\times(a_0 阅读全文
posted @ 2021-04-01 19:53 Troverld 阅读(176) 评论(0) 推荐(0) 编辑
摘要:VI.【模板】多项式快速幂 我们要求g=fk 两边求ln得到 lng=klnf 然后再幂回去 g=eklnf 于是一次ln,一次exp即可解决。 关于那个超大的k,在读入的时候直接mod上去即可。 时间复杂度$O(n\log n) 阅读全文
posted @ 2021-04-01 19:52 Troverld 阅读(81) 评论(0) 推荐(0) 编辑
摘要:VI.【模板】多项式开根(加强版) 这题和上题唯一的区别就是a0的取值——本题a0不一定为1。 咋办呢? 我们观察到里面有一句话: 保证a0mod 998244353下的二次剩余。 二次剩余?这是啥?能吃吗? 这时,你突然想起曾经看到过一道模板题: 【模板】二次剩余 阅读全文
posted @ 2021-04-01 19:50 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:V.【模板】多项式开根 同之前无数题一样,我们设已知b2A(modxm),并且我们想求出一个B使得B2A(modx2m)。 首先,显然有 Bb0(modxm) 老套路,平方一下,得到 \(B^2-2Bb+b^2\equi 阅读全文
posted @ 2021-04-01 19:45 Troverld 阅读(79) 评论(0) 推荐(0) 编辑
摘要:IV.【模板】多项式指数函数(多项式 exp) 本题有两种解法,一种比较好理解,一种比较通用(并且速度快)。 首先法一便是分治FFT解法。 我们有 B=eA 于是两边求导,得到 B=AeA 因为又有B=eA,代入得 B=AB 我们再积分回去,得到 \(\in 阅读全文
posted @ 2021-04-01 19:42 Troverld 阅读(972) 评论(0) 推荐(0) 编辑
摘要:III.【模板】多项式对数函数(多项式 ln) 这题大概不难吧( 我们已知Bln(A) 于是两边求导,就有Bln(A)。 右边套个链式求导法则,就等于\ln'(A)\equiv\dfrac{A'} 于是B'\equiv\dfrac{A'} 然后两边不定 阅读全文
posted @ 2021-04-01 19:40 Troverld 阅读(273) 评论(0) 推荐(0) 编辑
摘要:II.【模板】多项式乘法逆 F×G1(modxn)?这是啥意思? 实际上,它的意思就是F×G1n次幂的系数都为0,只有常数项为1,再往上的系数不管。 我们考虑递推求解。 设我们已经求出了使$F\ 阅读全文
posted @ 2021-04-01 19:38 Troverld 阅读(149) 评论(0) 推荐(0) 编辑
摘要:I.【模板】分治 FFT 作为多项式的第一题,这题还是挺好理解的。 首先,我们完全可以把n扩大到2的次幂,空余地方补上0,并且答案不变。 然后,对于递推式f_i=\sum\limits_^f_g_j,我们如果再令g0=0的话,显然这个j的下界是可以改成0的——虽然这会使 阅读全文
posted @ 2021-04-01 19:36 Troverld 阅读(80) 评论(0) 推荐(0) 编辑
摘要:CXLV.[九省联考2018]秘密袭击coat 首先先讲一种暴力但能过的方法。 很容易就会往每个值各被计算几次的方向去想。于是我们枚举每个节点,计算有多少种可能下该节点是目标节点。 为了避免相同的值的影响,我们在值相同的点间也决出一种顺序,即,若两个值相同的点在作比较,依照上文定下的那种顺序决定。 阅读全文
posted @ 2021-03-31 15:27 Troverld 阅读(40) 评论(0) 推荐(0) 编辑

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