ZJOJ2014 力 解題報告 FFT

2022-04-30 01:03:13 字數 1299 閱讀 9721

題目:給出$n$個數$q_i$,令$f_j=\sum_\frac$,$e_i=\frac$,求$e_i$

題解:顯然$e_j=\sum_^\frac-\sum_^\frac$

不妨設$g_i=\frac,g_0=0$,$t_i=q_i,t_0=0$

那麼$e_j=\sum_^t_ig_-\sum_^t_ig_$

=$\sum_^t_ig_-\sum_^t_ig_$

顯然減號前的部分是乙個卷積的形式,是把$t​$和$g​$卷起來的第$i​$項

設$w_i=t_(1<=i<=n),w_0=0$

減號後的$=\sum_^nw_g_$

$=\sum_^w_ig_$

=$\sum_^w_ig_$

這顯然也是乙個卷積的形式,是把$w$和$g$卷起來的第$n+1-j$項

$e_j=\sum_^t_ig_-\sum_^w_ig_$

**:

#include#include

#include

#include

#include

using

namespace

std;

typedef

double

db;const

int n=4e5+15

;const

double pi=acos(-1.0

);struct

complex

}a[n],b[n];

complex

operator + (complex a,complex b)

complex

operator - (complex a,complex b)

complex

operator * (complex a,complex b)

intn;

int r[n<<1

];void fft(int limit,complex *a,int

type)}}

}void work(db *a,db *b,db *c)

db q[n],p[n],f[n],a[n],b[n];

intmain()

reverse(p+1,p+1+n);

f[0]=0;q[0]=0;p[0]=0

; work(q,f,a);

work(p,f,b);

for (int i=1;i<=n;i++) printf("

%lf\n

",a[i]-b[n-i+1

]);

return0;

}

ZJOI2014 力 解題報告

zjoi2014 力 給出 n 個數 q i 定義 f j sum frac sum frac e i frac 求 e i i in 1,n 首先,提公因式,化簡可以得到,e j sum frac sum frac 把 q j 提出來後約掉 注意到式子可以分為兩個部分,這兩個部分中的因子可以分成 ...

LNOI2014 LCA 解題報告

對於一棵 n 個節點的樹,給出 m 次詢問,每次給出 l,r,x 求 sum limits r depth lca i,x n,m le 5 times 10 4 1 le l le r le n x le n 一道不錯的題目。說明有時候用一些其他的做法求乙個簡單的東西也可以幫助思考。對於我,求lc...

JSOI2014 解題報告 小結

考的主要是dp 貪心 資料結構這一些,還有網路流的題因為還沒學就先暫時沒寫,有時間還是要把沒學的東西給補上來,同時也要多做一點省選的題目提高思維能力 三分 貪心,可以感性理解一下這個能宅的天數與叫外賣的次數為什麼是乙個單峰函式,如果叫外賣叫的少,那麼費用就高,叫外賣叫的多,那麼給外賣小哥的錢就很多,...