BZOJ2194 快速傅利葉之二

2022-05-19 19:52:54 字數 879 閱讀 6019

給出位置為0到n-1的a陣列和b陣列,定義$c[k]=\sum_^a[i]*b[i-k]$

要使得為卷積形式,就將b倒過來,設$b'[i]=b[n-1-i]$

得到$c[k]=\sum_^a[i]*b'[n-1-i+k]$

這樣子就可以用fft求卷積了,所有輸出n-1到2n-2的數就行了

#include#include

#include

#include

#include

using

namespace

std;

const

double pi=acos(-1.0

);struct

complex

complex(

double _r,double _i)

friend complex

operator + (const complex &x,const complex &y)

friend complex

operator - (const complex &x,const complex &y)

friend complex

operator * (const complex &x,const complex &y)

}a[410000],b[410000

];int r[410000

];int

n;void fft(complex *y,int len,int

on) }

}if(on==-1) for(int i=0;i<=len;i++) y[i].r/=len;

}void calc(int

n)int

main()

bzoj 2194 快速傅利葉之二

time limit 10 sec memory limit 259 mb submit 1314 solved 772 submit status discuss 請計算c k sigma a i b i k 其中 k i n 並且有 n 10 5。a,b中的元素均為小於等於100的非負整數。第一...

BZOJ 2194 快速傅利葉之二

已知 a,b a,b 序列,計算 ck ai bi k ck ai bi k 觀察題目名稱,可以想到fft fft能解決的是形如下面的式子 hk fi gk i hk fi gk i 可以發現,f f 陣列的下標和 g role presentation style position relativ...

bzoj2194 快速傅利葉之二

題目鏈結 給出兩個長度為n的數列a,b。求乙個數列c滿足 c k sum limits na i b i k n le 10 5 長得和卷積很像,觀察一下卷積的形式 c k sum limits ia i b k i 所以先把b陣列翻轉過來。然後所求的式子就變成了 c k sum limits na...