BZOJ 2194 快速傅利葉之二 FFT

2022-05-28 01:12:13 字數 1110 閱讀 4921

【題目分析】

咦,這不是卷積裸題。

敲敲敲,結果樣例也沒過。

看看看,臥槽i和k怎麼反了。

艹艹艹,把b陣列取個反。

靠靠靠,怎麼全是零。

算算算,最終的取值範圍算錯了。

交交交,總算是a掉了。

【**】

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define maxn 500005

#define inf 0x3f3f3f3f

#define ll long long

#define cp complex

#define f(i,j,k) for (int i=j;i<=k;++i)

#define d(i,j,k) for (int i=j;i>=k;--i)

void finout()

int getint()

while (ch>='0'&&ch<='9')

return x*f;

}struct complex; }

complex operator - (complex a) ; }

complex operator * (complex a) ; }

}a[maxn],b[maxn],c[maxn];

int n,m,len,rev[maxn],sum;

const double pi=acos(-1.0);

void fft(complex * x,int n,int f)

; //當前的主單位根

for (int i=0;i>1);++j)

} }}

int main()

fft(a,n,1); fft(b,n,1);

f(i,0,n-1) c[i]=a[i]*b[i];

fft(c,n,-1);

f(i,0,n-1) (c[i].x/=n)+=0.4;

f(i,sum-1,sum*2-2) printf("%lld\n",(ll)c[i].x);

}

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...