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