Krydom: 暁の水平线に胜利を刻むのです

ソロモンの悪夢、見せてあげる!

@krydom11月前

08/5
11:11
FFT

[bzoj 2194] 快速傅立叶之二

♦♦♦♦♦♦   Description   ♦♦♦♦♦♦

 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5。 a,b中的元素均为小于等于100的非负整数。

♦♦♦♦♦♦   Input   ♦♦♦♦♦♦

第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i < N)。

♦♦♦♦♦♦   Output   ♦♦♦♦♦♦

输出N行,每行一个整数,第i行输出C[i-1]

♦♦♦♦♦♦   Sample Input   ♦♦♦♦♦♦

5
3 1
2 4
1 1
2 4
1 4

♦♦♦♦♦♦   Sample Output   ♦♦♦♦♦♦

24
12
10
6
1

♦♦♦♦♦♦   Hint   ♦♦♦♦♦♦

♦♦♦♦♦♦   题解  ♦♦♦♦♦♦

把b序列倒过来发现是一个卷积的形式,直接fft

c++:

pascal:

 

[bzoj 2194] 快速傅立叶之二