【FFT求卷积】Problem D. Duel】的更多相关文章

卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项式,系数为,设最高非零系数为,则其次数就是,记作.任何大于的整数都是的次数界. 多项式的系数表达方式:(次数界为). 则多项式的系数向量即为. 多项式的点值表达方式:,其中各不相同,. 离散傅里叶变换(DFT) 离散傅里叶变换(Discrete Fourier Transform,DFT).在信号处…
FFT求卷积(多项式乘法) 卷积 如果有两个无限序列a和b,那么它们卷积的结果是:\(y_n=\sum_{i=-\infty}^\infty a_ib_{n-i}\).如果a和b是有限序列,a最低的项为a0,最高的项为an,b同理,我们可以把a和b超出范围的项都设置成0.那么可以得出:y0=a0b0,y1=a1b0+a0b1,y2=a0b2+a1b1+a2b0--,y(n+m)=a(n)b(m). 构造两个多项式A(x)和B(x): \(A=a_0+a_1x+a_2x^2+...+a_{n-1}…
[AC] #include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> #include <math.h> using namespace std; typedef long long ll; const double PI = acos(-1.0); struct complex { double r,i; complex(,) { r = _r;…
题意:求母串中可以匹配模式串的子串的个数,但是每一位i的字符可以左右偏移k个位置. 分析:类似于 UVALive -4671. 用FFT求出每个字符成功匹配的个数.因为字符可以偏移k个单位,先用尺取法处理出每个位置能够取到的字符.设模式串长度为m. 令\(C(m-1+k) = \sum_{i=0}^{m-1}A_{i+k}*B(m-i-1)\). 反转模式串B, 对每个字符c,若该位上能够取到c,则多项式该位取1,否则为0,FFT求卷积.并记录[m-1,n-1]每个位置4次计算的系数\(C\)之…
题目链接  51nod 算法马拉松 34  Problem D 在这个题中$2$这个质数比较特殊,所以我们先特判$2$的情况,然后仅考虑大于等于$3$的奇数即可. 首先考虑任意一个点对$(i, j)$,满足$1 <= i <= j <= n$ 我们考虑这个点对对答案的贡献. 首先显然$i$和$j$必须有相同的奇偶性,那么$i + j$一定为偶数. 包含这个点对的有效的质数的区间长度为$[j - i + 1, min(i + j - 1, 2n + 1 - i - j)]$中的所有质数.…
BZOJ3527 推出卷积公式FFT求值 传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 题意: \(F_{j}=\sum_{i<j} \frac{q_{i} q_{j}}{(i-j)^{2}}-\sum_{i>j} \frac{q_{i} q_{j}}{(i-j)^{2}}\) 求\(E_i=F_i/q_i\) 题解: 推公式: \[ E_i=F_i/q_i\\ E_i=\sum_{j=i}^{n}\frac{q_j}{(i…
P3803 FFT求多项式系数 传送门:https://www.luogu.org/problemnew/show/P3803 题意: 这是一道FFT模板题,求多项式系数 题解: 对a和b的系数求一个fft,转换为点乘式后 O(n)扫一遍直接算系数即可 对于多项式相加 \(\begin{array}{l}{A(x)=\left(x_{0}, y_{0}\right),\left(x_{1}, y_{1}\right) \ldots\left(x_{n}, y_{n}\right)} \\ {B(…
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9413    Accepted Submission(s): 1468 Problem Description Calculate A * B.   Input Each line will contain two integers A and B.…
Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/article/details/80154299 题意: 已知两个人出剪刀石头布的顺序,第二个人可以选择从第一个人的任意手开始正式比赛,问第二个人赢得个数最多是多少. 思路: 首先肯定要把第二个人所代表的字符串T转化为对应能赢的字符串rT.这时候暴力的话就是把rT拿去和第一个人的字符串匹配. 这里就可以用FFT…
题目链接:https://cn.vjudge.net/contest/280041#problem/B 题目大意:给你n个数,然后让你找满足a[i] + a[j] = a[k] 的情况总数. 具体思路:首先把每一种情况的个数算出来(两个数相加的结果),然后再就是去重的过程. (因为题目中会有负数,我们可以全部转换成非负数去进行计算) 1,自己和自己相加. 2,1+0=1,0+1=1这个时候,1是使用了两次,所以需要去掉这种情况,就是去掉(0的总数)*2. 3,0+0=0,0+0=0,这个时候我们…