首页 > TAG信息列表 > BZOJ2194

bzoj2194 快速傅立叶之二

题目链接 problem 给出两个长度为n的数列a,b。求一个数列c满足:\[c[k] = \sum\limits_{i = k} ^ na[i]b[i - k]\] \(n\le 10^5\) solution 长得和卷积很像,观察一下卷积的形式:\(c[k]=\sum\limits_{i=0}^ia[i]b[k-i]\) 所以先把b数组翻转过来。 然后所求的式子就变成了\(c[k]=\sum\lim

[BZOJ2194] 快速傅里叶之二 题解

题意:求\[C_k=\sum_{k}^{n-1}a_ib_{i-k}.\] \(n \leq 1e5\). -------- 考虑反转数组\(a\),生成新数组\(a'\). 那么\[C_k=\sum_{i=k}^{n-1}a'_{n-1-i}b_{i-k},\] 考虑把\(i\)改成从\(0\)开始。那么 \[C_k=\sum_{i=0}^{n-k-1}a'_{n-k-1-i}b_i.\] 考虑用\(\text{FFT}\)计算

bzoj2194 快速傅立叶之二 ntt

bzoj2194 快速傅立叶之二 链接 bzoj 思路 对我这种和式不强的人,直接转二维看。 发现对\(C_k\)贡献的数对(i,j),都是右斜对角线。 既然贡献是对角线,我们可以利用对角线的性质了。 不过右斜角线不太好,我们把每一行都reverse一下,换成左斜角线。 对角线上\(i+j\)相等,可以套上多项式乘法