记一个求和技巧
形式
\[g(n)=\sum_{k=1}^nf(k)k
\]
技巧
我们记
\[s(n)=\sum_{k=1}^nf(k)
\]
有
\[\begin{align*}
g(n)&=\sum_{k=1}^nf(k)\sum_{j=1}^k1\\
&=\sum_{j=1}^n\sum_{k=j}^nf(k)\\
&=\sum_{j=1}^n(s(n)-s(j-1))\\
&=ns(n)-\sum_{j=0}^{n-1}s(j)
\end{align*}
\]
使用例
\[\begin{align*}
\sum_{k=1}^nt^kk&=\frac{t^{n+1}n-n}{t-1}-\sum_{j=0}^{n-1}\frac{t^{j+1}-1}{t-1}\\
&=\frac{t^{n+1}n-n}{t-1}-\frac{1}{t-1}\sum_{j=1}^nt^j+\frac{n}{t-1}\\
&=\frac{t^{n+1}n-n}{t-1}-\frac{t^{n+1}-1}{(t-1)^2}+\frac{n}{t-1}\\
&=\frac{t^{n+2}n-t^{n+1}n-t^{n+1}+1}{(t-1)^2}
\end{align*}
\]
通过这种技巧,我们能套路式的解决很多形如\(\sum\limits_{k=1}^nf(k)k\)或是\(\sum\limits_{k=1}^nf(k)k^2\)等的问题。
另一种使用方式
在计数问题中,我们有时会遇到求方案权值和的问题。则通过这种技巧,可以把求\(x=k\)的个数乘\(k\)转化成求\(x\le k\)的个数之和。