傳送門:
題目大意:請計算c[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,並且有 n < = 10 ^ 5。 a,b中的元素均為小於等於100的非負整數。
題解:這就是所謂的卷積,找個時間一定要好好看看,上fft咯
**:
1 #include2 #include3 #include4 #include5 #include6view code#define maxn 270005
7#define pi acos(-1)
8using
namespace
std;
9int
n,m;
10int
ans[maxn],rev[maxn];
11int
l;12
struct
f;}15 f operator -(const f &x);}
16 f operator *(const f &x);}
17}a[maxn],b[maxn],c[maxn],w,wn,t1,t2;
18int
read()
1925
void fft(f *a,int
type)26;
31for (int i=0; is)32;
34for (int j=i; j>1)); j++,w=w*wn)
3539}40
}41}42
int re(int
x)43
48void
init()
4956
for (int i=0; ire(i);
57 fft(a,1); fft(b,1
);58
for (int i=0; ib[i];
59 fft(c,-1
);60
for (int i=0; iint)(c[i].rea/n+0.5
);61
for (int i=m-1; i<2*m-1; i++) printf("
%d\n
",ans[i]);
6263}64
intmain()
65
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...