zoukankan      html  css  js  c++  java
  • [Luogu] P4948 数列求和

    \(Link\)

    Description​

    给定\(n, a, k\),求\(\sum\limits_{i=1}^ni^ka^i\pmod{1e9+7}\)

    Solution​

    学习了一种新的推式子方法。

    我们令\(f(k)=\sum\limits_{i=1}^ni^ka^i\)

    \(a>1\)时,\(f(k)=\sum\limits_{i=1}^ni^ka^i\)

    \(=\sum\limits_{i=1}^n(i+1)^ka^{i+1}-(n+1)^ka^{n+1}+a\)

    \(=\sum\limits_{i=1}^n\sum\limits_{j=0}^ki^j\dbinom{k}{j}a^{i+1}-(n+1)^ka^{n+1}+a\)

    \(=a\sum\limits_{j=0}^k\dbinom{k}{j}f(j)-(n+1)^ka^{n+1}+a\)

    整理可得\(f(k)=\dfrac{(n+1)^ka^{n+1}-a-a\sum\limits_{j=0}^{k-1}\dbinom{k}{j}f(j)}{a-1}\)

    我们容易求出\(f(0)=\sum\limits_{i=1}^na^i=\dfrac{a(a^n-1)}{a-1}\)(等比数列求和)。\(O(k^2)\)递推即可。

    \(a=1\)时,\(f(k)=\sum\limits_{i=1}^ni^k\)

    \(=\sum\limits_{i=1}^n(i+1)^k-(n+1)^k+1\)

    \(=\sum\limits_{i=1}^n\sum\limits_{j=0}^ki^j\dbinom{k}{j}-(n+1)^k+1\)

    \(=\sum\limits_{j=0}^k\dbinom{k}{j}f(j)-(n+1)^k+1\)

    整理一下:\((n+1)^k-1=\sum\limits_{j=0}^{k-1}\dbinom{k}{j}f(j)+\dbinom{k}{k}f(k)-f(k)=\sum\limits_{j=0}^{k-2}\dbinom{k}{j}f(j)+\dbinom{k}{k-1}f(k-1)\)

    \(k=k+1\)\(f(k)\dbinom{k+1}{k}=(n+1)^{k+1}-1-\sum\limits_{J=0}^{k-1}\dbinom{k+1}{j}f(j)\)

    整理得\(f(k)=\dfrac{(n+1)^{k+1}-1-\sum\limits_{j=0}^{k-1}\dbinom{k+1}{j}f(j)}{k+1}\)

    我们容易求出\(f(0)=n\)\(O(k^2)\)递推即可。

    Tips

    快速幂运算之前,先要把底数和指数取个模在运算,否则很有可能爆\(long\ long\)!(调了我一个多小时)

  • 相关阅读:
    OC中的字典
    OC中的那些String
    虚拟机资源共享
    虚拟机空间使用心得
    PEST和SWOT分析法
    Axure 的四种预览模式
    竞品分析:抖音VS快手
    第二章:行业与市场分析六步法
    第一章:互联网产品从0到1全流程解密(9-11)
    第一章:互联网产品从0到1全流程解密(5-8)
  • 原文地址:https://www.cnblogs.com/andysj/p/13829908.html
Copyright © 2011-2022 走看看