
FFT/NTT
Duan2baka
人
展开
-
BZOJ[4332]JSOI2012 分零食 分治FFT
传送门ber~可以先令gi,jgi,jg_{i,j}表示iii个人里分jjj个弹果的欢乐度,h(i)h(i)h(i)表示给一个小朋友iii个糖果的欢乐度则有gi,j=∑k=1j−1gi−1,j−k∗h(k)gi,j=∑k=1j−1gi−1,j−k∗h(k)g_{i,j}=\sum \limits _{k=1}^{j-1} g_{i-1,j-k}*h(k)发现是个卷积的形式,则gi=gi...原创 2018-03-07 16:36:21 · 470 阅读 · 0 评论 -
BZOJ[3160]万径人踪灭 FFT+Manacher
传送门ber~答案ans=ans=ans=所有回文子串个数−−-连续的回文子串个数 现在这两个分别考虑以iii为对称轴的对称字符个数f(i)=∑j=1i(strj==str2∗i−j)f(i)=∑j=1i(strj==str2∗i−j)f(i)=\sum \limits _{j=1}^{i} (str_j==str_{2*i-j}),那么以iii为对称轴的对称子串个数为2f(i)−12f...原创 2018-03-07 22:55:11 · 361 阅读 · 0 评论 -
BZOJ[3527][Zjoi2014]力 FFT
传送门ber~这题有毒好几次把i,ji,ji,j弄反题目就是让求一个Ej=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2Ej=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2E_j=\sum_{i=1}^{j-1} \frac{q_i}{(i-j)^2}-\sum_{i=j+1}^{n} \frac{q_i}{(i-j)^2} 令f(i)=1i2f(i)=1...原创 2018-03-07 23:22:10 · 282 阅读 · 0 评论 -
BZOJ[3992][SDOI2015]序列统计 生成函数+NTT
传送门ber~首先了解一下指标 看我瞎bb也可以 因为原根ggg满足gi,gj(i,j∈(1,MOD−1),i≠j)gi,gj(i,j∈(1,MOD−1),i≠j)g^i,g^j(i,j\in (1,MOD-1),i\neq j)互不相同 则可以给每个数iii定义一个指标indiindiind_i表示模意义下的loggiloggi\log_g i,并且在区间[1,φ(MOD)][1,φ...原创 2018-03-08 09:11:00 · 246 阅读 · 0 评论 -
BZOJ[4503]两个串 FFT
传送门ber~构造个函数numi=∑len2−1j=0(fi+j−gj)2numi=∑j=0len2−1(fi+j−gj)2num_i=\sum_{j=0}^{len2-1} (f_{i+j}-g_j)^2,当一个位置的numnumnum为0,就代表可以匹配 那么通配符怎么搞? 在前面乘一个gjgjg_j就可以了 即 numi===∑j=0len2−1gj∗(fi+j−gj)2∑j=0...原创 2018-03-15 20:30:41 · 437 阅读 · 0 评论 -
BZOJ[4259]残缺的字符串 FFT
传送门ber~同BZOJ[4503] 不同的是在前面再乘一个fi+jfi+jf_{i+j}就可以了代码如下:#include<algorithm>#include<cstring>#include<cstdio>#include<cmath>#define N 1000020using namespace std;const...原创 2018-03-16 07:47:13 · 396 阅读 · 0 评论 -
BZOJ[3509][CodeChef] COUNTARI 分块+FFT
传送门ber~因为A[k]−A[j]=A[j]−A[i]A[k]−A[j]=A[j]−A[i]A[k]-A[j]=A[j]-A[i],即2Aj=Ak+Ai2Aj=Ak+Ai2A_j=A_k+A_i 所以我们可以对每个位置的左右分别搞一个生成函数,卷积起来统计2Aj2Aj2A_j次项的系数就可以了 时间复杂度Θ(nmlogm)Θ(nmlogm)\varTheta(nm\log m),过不去...原创 2018-03-12 07:49:43 · 337 阅读 · 0 评论 -
BZOJ[3771]Triple 生成函数+容斥原理
传送门ber~构造出原序列的生成函数AAA,它的三次方就是损失的方案数 可惜题目要求方案互不相同,这样计算会有重复的方案出现 那我们可以容斥一发 令AAA表示所有物品选一个的生成函数,BBB表示一次选俩的生成函数,CCC表示一次选仨的生成函数 手动容斥一发 拿一个的方案数:AAA 拿两个的方案数:(A∗A−B)/2(A∗A−B)/2(A*A-B)/2,A∗AA∗AA*A就是带重复的...原创 2018-03-13 16:00:49 · 435 阅读 · 0 评论