FFT\NTT
文章平均质量分 65
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
[AH/HNOI2017]礼物
推推公式,即求Σni=1(xi+k−yi+c)2最小,c范围为[−m,m]推推公式,即求\Sigma^{n}_{i=1} (x_{i+k}-y_i+c)^2最小,c范围为[-m, m] 拆开,就是Σx2i+Σy2i+n∗c2+2∗c∗Σ(xi+k−yi)−2∗Σni=1xi+kyi拆开,就是\Sigma x_i^2 + \Sigma y_i^2 + n * c^2 + 2*c*\Sigma(x_{原创 2018-01-02 19:08:48 · 221 阅读 · 0 评论 -
CF954I Yet Another String Matching Problem
传送门Sol考虑如何计算两个等长串的距离相当于两个匹配的字符之间连边,同一个连通块内可以互相转化,答案就是并查集合并的次数本题的字符集大小只有 666,那么考虑枚举两种字符匹配连边匹配就是一个非常套路的反转 +++ FFTFFTFFT 了# include <bits/stdc++.h>using namespace std;typedef long long ll;...原创 2018-12-13 16:57:02 · 330 阅读 · 0 评论 -
有标号的DAG计数系列问题
传送门II设 fif_ifi 表示 iii 个点的答案那么枚举至少 jjj 个点的出度为 000∑j=0i(−1)j(ij)fi−j2(i−j)j=0\sum_{j=0}^{i}(-1)^j\binom{i}{j}f_{i-j}2^{(i-j)j}=0j=0∑i(−1)j(ji)fi−j2(i−j)j=0所以fi=∑j=1i(−1)j+1(ij)fi−j2(i−j)jf_i=\...原创 2018-12-06 17:50:14 · 1131 阅读 · 0 评论 -
Catalan数的通项公式(母函数推导)
首先hn=∑ihihn−i−1h_n=\sum_{i}h_ih_{n-i-1}hn=i∑hihn−i−1写出 hhh 的母函数 H(x)H(x)H(x)那么H(x)=H2(x)x+1,H(x)=1−1−4x2xH(x)=H^2(x)x+1,H(x)=\frac{1-\sqrt{1-4x}}{2x}H(x)=H2(x)x+1,H(x)=2x1−1−4x(解二元一次方程取符号时候...原创 2018-12-19 20:06:07 · 1808 阅读 · 0 评论 -
51nod1538:一道难题(常系数线性递推/Cayley-Hamilton定理)
传送门Sol考虑要求的东西的组合意义,问题转化为:有 nnn 种小球,每种的大小为 aia_iai,求选出大小总和为 mmm 的小球排成一排的排列数有递推 fi=∑j=1nfi−ajf_i=\sum_{j=1}^{n}f_{i-a_j}fi=∑j=1nfi−aj常系数线性递推求一个满足 kkk 阶齐次线性递推数列 fif_ifi 的第 nnn 项fn=∑i=1kai×fn...原创 2018-12-20 22:18:19 · 537 阅读 · 0 评论 -
ARG102E:Stop. Otherwise...
传送门Sol对于每个 iii ,可以把 kkk 个数字分成 (x,i−x)(x,i-x)(x,i−x) 的若干组。那么就是求每组只能其中选择一个且可以重复的方案数。预处理 f[i][j]f[i][j]f[i][j] 表示从 jjj 个组内选 iii 个,每个组必须选的方案数。f[i][j]=(f[i−1][j]+f[i−1][j−1]×2)f[i][j]=(f[i-1][j]+f[i-1...原创 2018-12-22 22:26:55 · 175 阅读 · 0 评论 -
LOJ2541:「PKUWC2018」猎人杀
传送门Sol第一步就不会问题转化杀人后将其打上标记,仍可以以他为目标重复选,直到选到一个未打标记的人。这和原问题等价,而且这样每轮选中每人的概率都不变,只是游戏变成了无穷轮数这样就好做多了考虑容斥,枚举在 111 后面被标记的猎人集合 SSS,设其 www 的和为 AAA,总的 www 的和为 BBB,那么ans=∑S(−1)∣S∣w1B∑i=0∞(1−A+w1B)i=∑S(−1...原创 2018-12-18 16:17:56 · 186 阅读 · 0 评论 -
牛客Wannafly挑战赛23F 计数(循环卷积+拉格朗日插值/单位根反演)
传送门直接的想法就是设 xkx^kxk 为边权,矩阵树定理一波后取出 xnkx^{nk}xnk 的系数即可也就是求出模 xkx^kxk 意义下的循环卷积的常数项考虑插值出最后多项式,类比 DFTDFTDFT 的方法假设我们要求Ci=∑j=0n∑k=0nAjBk[(j+k) mod n=i]C_i=\sum_{j=0}^{n}\sum_{k=0}^{n}A_jB_k[(...原创 2018-12-29 14:38:47 · 248 阅读 · 0 评论 -
牛客Wannafly挑战赛11E 白兔的刁难
传送门如果大力推单位根反演就可以获得一个 k2lognk^2lognk2logn 的好方法但是可以发现这道题就是求 (1+x)n(1+x)^n(1+x)n 的循环卷积的系数而题目中 kkk 一定是 222 的幂,所以带入 wkiw_k^iwki 求出点值然后 IDFTIDFTIDFT 即可# include <bits/stdc++.h>using namespace st...原创 2018-12-29 15:42:11 · 157 阅读 · 0 评论 -
BZOJ4162:shlw loves matrix II
传送门利用Cayley-Hamilton定理,用插值法求出特征多项式 P(x)P(x)P(x)然后 Mn≡Mn(mod P(x))(mod P(x))M^n\equiv M^n(mod~P(x))(mod~P(x))Mn≡Mn(mod P(x))(mod P(x))然后就多项式快速幂+取模最后得到了一个关于 MMM 的多项式,代入 MiM^iMi 即...原创 2018-12-30 10:51:56 · 183 阅读 · 0 评论 -
UOJ#316. 【NOI2017】泳池
传送门一道 DPDPDP 好题设 qqq 为一个块合法的概率套路一恰好为 kkk 的概率不好算,算小于等于 kkk 的减去小于等于 k−1k-1k−1 的那么设 fif_ifi 表示宽为 iii 的合法的泳池面积都小于等于 kkk 的概率设 gig_igi 表示宽为 iii 的合法的泳池面积都小于等于 kkk 且最下面一行都合法的概率那么考虑转移 fff套路二强制前面的满足一定的...原创 2018-12-30 17:30:24 · 228 阅读 · 0 评论 -
Luogu4191:[CTSC2010]性能优化
传送门题目翻译:给定两个 nnn 次多项式 A,BA,BA,B 和一个整数 CCC,求 A×BCA\times B^CA×BC 在模 xnx^nxn 意义下的卷积显然就是个循环卷积,所以只要代入 ωnk\omega_n^{k}ωnk 进去求出点值,然后插值就好了???nnn 不是 2k2^k2k 的形式,不能直接 NTTNTTNTT怎么办呢?根据题目性质,可以把 nnn 拆成 2a13...原创 2019-01-02 23:05:25 · 188 阅读 · 0 评论 -
LOJ#6271. 「长乐集训 2017 Day10」生成树求和 加强版
传送门由于是边权三进制不进位的相加,那么可以考虑每一位的贡献对于每一位,生成树的边权相当于是做模 333 意义下的加法考虑最后每一种边权的生成树个数,这个可以直接用生成函数,在矩阵树求解的时候做一遍这个生成函数的模 333 意义下的循环卷积求出系数即可暴力多项式运算不可取考虑选取 333 个数字 xix_ixi,使得 xi3≡1(mod 109+7)x_i^3\equiv1(...原创 2019-01-25 23:15:06 · 350 阅读 · 0 评论 -
UOJ#272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
传送门设运算 op1,op2op1,op2op1,op2,一个表示三进制不进位的加法,一个表示不退位的减法设 cnt1[x],cnt2[x]cnt1[x],cnt2[x]cnt1[x],cnt2[x] 分别表示 xxx 转成三进制后 1/21/21/2 的个数那么fi,x=∑fi−1,ybcnt1[x op2 y],cnt2[x op2 y]f_{i...原创 2019-01-27 17:16:27 · 258 阅读 · 0 评论 -
LOJ#2983. 「WC2019」数树
传送门抄题解Task0Task0Task0,随便做一下,设 cntcntcnt 为相同的边的个数,输出 yn−cnty^{n-cnt}yn−cntTask1Task1Task1,给定其中一棵树设初始答案为 yny^nyn,首先可以发现,每有一条边和给定的树相同就会使得答案除去 yyy那么可以利用矩阵树定理,已经有的边权值为 y−1y^{-1}y−1,其它的连成完全图,权值为 111求解...原创 2019-02-01 22:42:23 · 208 阅读 · 0 评论 -
BZOJ3451:Tyvj1953 Normal
根据期望的线性性,答案就是 ∑\sum∑ 每个连通块出现次数的期望而每个连通块次数的期望就是 ∑\sum∑ 连通块的根与每个点连通次数的期望也就是对于一条路径 (i,j)(i,j)(i,j),设 iii 为根,那么 iii 必须是这条路径第一个被选择的点,概率为 1dis(i,j)\frac{1}{dis(i,j)}dis(i,j)1,其中 dis(i,j)dis(i,j)dis(i,j) ...原创 2019-02-15 11:18:02 · 148 阅读 · 0 评论 -
拆系数FFT(任意模数FFT)
拆系数FFT对于任意模数 modmodmod设m=modm=\sqrt {mod}m=mod把多项式A(x)A(x)A(x)和B(x)B(x)B(x)的系数都拆成a×m+ba\times m+ba×m+b的形式,时a,ba, ba,b都小于mmm提出,那么一个多项式就可以拆成两个多项式的加法一个是a∗ma*ma∗m的,一个是bbb的直接乘法分配律,aaaaaa一遍,ababab一遍,...原创 2018-12-13 16:12:35 · 541 阅读 · 0 评论 -
一类划分关系和指数级生成函数,多项式exp的关系
划分关系姑且这么叫着设满足性质 AAA 的集合为 SAS_ASA,每个元素有标号如果 SBS_BSB 是由若干个 SAS_ASA 组成的一个大集合设 aia_iai 表示大小为 iii 的 SAS_ASA 的个数设 bib_ibi 表示大小为 iii 的 SBS_BSB 的个数构造指数级生成函数A(x)=∑i=0∞aixii!A(x)=\sum_{i=0}^{\inft...原创 2018-12-08 18:50:22 · 512 阅读 · 0 评论 -
[ZJOI2014]力
推公式发现(这不是水题吗,这要推吗) Ei=Σi−1j=1qj(i−j)2−Σnj=i+1qj(i−j)2E_i=\Sigma^{i-1}_{j=1} \frac{q_j}{(i-j)^2} - \Sigma^{n}_{j=i+1} \frac{q_j}{(i-j)^2} 设A[i]=q[i],B[i]=1i2,FFT将A,B相乘可以得到Ei的前半部分设A[i] = q[i], B[i] =原创 2018-01-02 22:28:28 · 213 阅读 · 0 评论 -
FFT\NTT总结
学了好久,终于基本弄明白了推荐两个博客: 戳我 戳我 再推荐几本书: 《ACM/ICPC算法基础训练教程》 《组合数学》(清华大学出版社) 《高中数学选修》预备知识复数方面找数学老师去 i2=−1,i为虚数的单位i2=−1,i为虚数的单位i^{2}=-1,i为虚数的单位 坐标系上纵轴就是虚数轴,复数就是这上面的点 三种表示法: 一般:a+bi,a...原创 2018-01-02 10:57:17 · 821 阅读 · 0 评论 -
Bzoj3992:[SDOI2015]序列统计
题面BzojSolpts 1大暴力很简单,f[i][j]f[i][j]f[i][j]表示到第iii个位置,前面积的模为jjj的方案 然后可以获得101010分的好成绩# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, ...原创 2018-02-11 22:23:15 · 249 阅读 · 0 评论 -
Bzoj3160:万径人踪灭
题面BzojSol求不连续回文子序列的个数 ans=ans=ans=回文子序列个数-连续回文子序列个数 即回文子序列个数-回文子串个数 后面直接ManacherManacherManacher就好了 考虑前面的 枚举对称轴,设f[i]f[i]f[i]表示对称轴iii两边相同字符的对数 那么最终答案就是∑2f[i]−1∑2f[i]−1\sum 2^{f[i]}-1 考虑...原创 2018-02-12 22:29:49 · 243 阅读 · 0 评论 -
斯特林数
含义nnn个有区别的球放在mmm个相同的盒子内,要求盒子不为空的方案数 实际上也就是把数nnn拆成mmm个正整数和的方案数 记作S(n,m)S(n,m)S(n, m)性质S(n,0)=S(0,n)=0S(n,0)=S(0,n)=0S(n, 0)=S(0, n)=0,其中n∈Nn∈Nn \in NS(n,k)=0S(n,k)=0S(n, k)=0,其中k&amp;amp;amp;gt;n&amp;amp;amp;gt;=1...原创 2018-02-21 15:00:05 · 549 阅读 · 0 评论 -
Bzoj4555: [Tjoi2016&Heoi2016]求和
题面BzojSol推柿子 因为当j>ij>ij>i时S(i,j)=0S(i,j)=0S(i, j)=0,所以有 ∑i=0n∑j=0nS(i,j)2j(j!)∑i=0n∑j=0nS(i,j)2j(j!)\sum_{i=0}^{n}\sum_{j=0}^{n}S(i, j)2^j(j!) 枚举jjj ∑j=0n2j(j!)∑i=0nS(i,j)∑j=0n2j(j!)...原创 2018-02-21 16:59:10 · 265 阅读 · 0 评论 -
Bzoj5093: 图的价值
题面BzojSol一张无向无重边自环的图的边数最多为n(n−1)2n(n−1)2\frac{n(n-1)}{2} 考虑每个点的贡献 n∗2n(n−1)2−(n−1)∑i=0n−1ikC(n−1,i)n∗2n(n−1)2−(n−1)∑i=0n−1ikC(n−1,i)n*2^{\frac{n(n-1)}{2} - (n-1)}\sum_{i=0}^{n-1}i^kC(n-1, ...原创 2018-02-21 19:00:50 · 264 阅读 · 0 评论 -
牛顿迭代,多项式求逆,除法,开方,exp,ln,求幂
多项式求逆给定A(x)A(x)A(x)求满足A(x)∗B(x)=1A(x)∗B(x)=1A(x)*B(x)=1的B(x)B(x)B(x)写成 A(x)∗B(x)=1(mod&amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;xn)A(x)∗B(x)=1(mod&amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;xn)A(x)*B(x)=1(mod \ x^n)我们会求A(x)∗B(x)原创 2018-05-31 12:26:07 · 1815 阅读 · 0 评论 -
CF528D Fuzzy Search
题意有两个基因串SSS和TTT,他们只包含AGCTAGCTAGCT四种字符。 现在你要找出TTT在SSS中出现了几次。 有一个门限值k≥0k≥0k≥0 只要T[i]T[i]T[i]和S[j−k]S[j−k]S[j-k]到S[j+k]S[j+k]S[j+k]有相同的,就视为匹配 (1≤|T|≤|S|≤200000,0≤k≤200000)(1≤|T|≤|S|≤200000,0≤k≤200...原创 2018-05-31 12:27:04 · 563 阅读 · 0 评论 -
Bzoj4259: 残缺的字符串
题面没有权限号的我当然选择luoguSol假设没有通配符 那么把TTT翻转 设f[i]=∑j+k=i[S[k]==T[j]]f[i]=∑j+k=i[S[k]==T[j]]f[i]=\sum_{j+k=i}[S[k]==T[j]] 如果f[i]f[i]f[i]为000则iii之前的一一匹配 那么可以给每个字符一个权值 重新定义f[i]=∑j+k=i(S[k]−T[j])2f...原创 2018-05-31 12:26:58 · 203 阅读 · 0 评论 -
求解所有的变量的所有次幂的每一种的和
标题很丑。。。问题描述nnn 个变量 anana_n,求所有的 sj=∑i=1naji,j∈[0,m]sj=∑i=1naij,j∈[0,m]s_j=\sum_{i=1}^{n}a_i^j, j \in [0,m]解决O(n∗m)O(n∗m)O(n*m) 太暴力了一个比较好的方法设 F(x)=Πni=1(aix+1)F(x)=Πi=1n(aix+1)F(x)...原创 2018-06-12 13:04:41 · 228 阅读 · 0 评论 -
拉格朗日插值公式
若P(x)P(x)P(x)是关于xxx的nnn次多项式,那么只要知道0&amp;amp;amp;nbsp;n0&amp;amp;amp;nbsp;n0~n的点值就可以推出所有的点值了P(x)=∑i=0n(−1)n−iP(i)x(x−1)...(x−n)(n−i)!i!(x−i)P(x)=∑i=0n(−1)n−iP(i)x(x−1)...(x−n)(n−i)!i!(x−i)P(x)=\sum_{i=0}^{n}(-1)^{n-i}P(i)...原创 2018-07-29 22:23:09 · 2281 阅读 · 0 评论 -
多项式多点求值和插值
orz&nbsp;fjzzqorz~fjzzqorz&nbsp;fjzzq多项式多点求值给定一个多项式 F(x)F(x)F(x)求出对于每个点 xix_ixi 的 F(xi)F(x_i)F(xi)考虑分治设L(x)=∏i=0n2(x−xi),R(x)=∏i=n2+1n(x−xi)L(x)=\prod_{i=0}^{\frac{n}{2}}(x-x_i),R(x)=\prod_{i=...原创 2018-11-29 13:52:21 · 444 阅读 · 0 评论 -
BZOJ3625: 小朋友和二叉树
传送门Sol设 fxf_xfx 表示权值为 xxx 的二叉树的个数设 sxs_xsx 表示是否有 xxx 这种权值可以选择那么fn=∑i=0n∑j=0n−ifjfn−i−jsif_n=\sum_{i=0}^{n}\sum_{j=0}^{n-i}f_jf_{n-i-j}s_ifn=i=0∑nj=0∑n−ifjfn−i−jsi构造F(x)=∑i=0fixiF(x)=\su...原创 2018-11-29 17:25:25 · 129 阅读 · 0 评论 -
NTT中可用素数模数原根表
g 是mod(r*2^k+1)的原根素数 r k g3 1 1 25 1 2 217 1 4 397 3 5 5193 3 6 5257 1 8 37681 15 9 1712289 3 12 1140961 5 13 365537 1 16 3786433 3 ...原创 2018-12-01 20:07:29 · 1401 阅读 · 0 评论 -
BZOJ5372: PKUSC2018神仙的游戏
传送门Sol自己还是太 naivenaivenaive 了,上来就构造多项式和通配符直接匹配,然后遇到 borderborderborder 相交的时候就 gggggg 了神仙的游戏蒟蒻还是玩不来一个小小的性质:存在长度为 lenlenlen 的 borderborderborder 的充要条件是 ∀i,si=sn−len+i\forall i,s_i=s_{n-len+i}∀i,si...原创 2018-12-01 22:44:10 · 200 阅读 · 0 评论 -
Codeforces 981H:K Paths
传送门考虑枚举一条路径 u,vu,vu,v,求出所有边经过它的答案只需要求出 uuu 的子树内选出 kkk 个可以重复的点,使得它们到 uuu 的路径不相交不难发现,就是从 uuu 的儿子的子树内各自选一个以及可以选多次 uuu 自己设这个方案数为 fuf_ufu再设 sizeusize_usizeu 表示 uuu 的子树大小,sonuson_usonu 表示 uuu 的儿子集合...原创 2019-02-09 14:47:41 · 259 阅读 · 0 评论