zoukankan      html  css  js  c++  java
  • 扰动法--*BZOJ3157: 国王奇遇记

    求$sum_{i=1}^ni^mm^i$。$n leq 1e9,m leq 200$。

    其实我也不知道这东西为啥叫“扰动法”,大概是在黑暗的边缘试探?就是那种,人家再多一点就被您看破了,然后您就一定要搞他那么一点去试探他的限度,一不小心给他搞爆了,这种感觉。

    扰动三连:

    等比数列求和:

    $sum_{i=1}^na_i,a_i=a_1*q^{n-1}$。

    令$S_n=sum_{i=1}^na_i$。

    给他日上个$n+1$。

    $S_n+a_{n+1}$

    $=sum_{i=1}^{n+1}a_i$

    $=a_1+qsum_{i=1}^na_i$

    $=a_1+qS_n$

    可得$S_n=frac{a_1(1-q^n)}{1-q}$,厉害吧!

    自然数幂求和:

    $sum_{i=1}^ni^m$。

    令$S_n^m=sum_{i=1}^ni^m$。

    给他日上个$n+1$。

    $S_n^m+(n+1)^m$

    $=sum_{i=1}^{n+1}i^m$

    $=1+sum_{i=1}^n(i+1)^m$

    $=1+sum_{i=1}^nsum_{j=0}^minom{m}{j}i^j$

    $=1+sum_{j=0}^minom{m}{j}sum_{i=1}^ni^j$

    $=1+sum_{j=0}^{m-1}inom{m}{j}S_n^j+S_n^m$

    emmmmmm自己把自己日掉了,不虚我们把$m$变成$m+1$。

    $S_n^{m+1}+(n+1)^{m+1}$

    $=1+sum_{j=0}^{m}inom{m+1}{j}S_n^j+S_n^{m+1}$

    $=1+sum_{j=0}^{m-1}inom{m+1}{j}S_n^j+S_n^{m+1}+(m+1)S_n^m$

    已经知道了。$S_n^m=frac{(n+1)^{m+1}-sum_{j=0}^{m-1}inom{m+1}{j}S_n^j}{m+1}$。

    可以$m^2$。要是给个好膜数可以$mlogm$。

    这道题:

    令$S_n^m=sum_{i=1}^ni^mm^i$。

    给他日上个$n+1$。

    $S_n^m+(n+1)^mm^{n+1}\$
    $=sum_{i=1}^{n+1}i^mm^i\$
    $=m+sum_{i=2}^{n+1}i^mm^i\$
    $=m+msum_{i=1}^{n}(i+1)^mm^i\$
    $=m+msum_{i=1}^{n}m^isum_{j=0}^minom{m}{j}i^j\$
    $=m+msum_{j=0}^{m}inom{m}{j}sum_{i=1}^nm^ii^j\$
    $=m+msum_{j=0}^{m-1}inom{m}{j}sum_{i=1}^nm^ii^j+mS_n^m$

    emmmmmm为什么这里也要emmmmmm,因为化出来那个$sum_{i=1}^nm^ii^j$跟咱想象的不太一样,那咱换个字母重来一遍。

    令$S_n^k=sum_{i=1}^ni^km^i$。

    如此$S_n^k+(n+1)^km^{n+1}=...=m+msum_{j=0}^{k-1}inom{k}{j}S_n^j+mS_n^k$。

    搞定了。$m^2$解决。模数优秀可以$mlogm$。

  • 相关阅读:
    codeforces570D Tree Requests
    codeforces600E Lomsat gelral
    BZOJ2001 [Hnoi2010]City 城市建设
    BZOJ2565 最长双回文串
    BZOJ4031 [HEOI2015]小Z的房间
    BZOJ2467 [中山市选2010]生成树
    SPOJ104 HIGH
    爆零系列—补题A
    DP一直是自己的弱势 开始练滚动数组——HDOJ4502
    HDOJ4550 卡片游戏 随便销毁内存的代价就是wa//string类的一些用法
  • 原文地址:https://www.cnblogs.com/Blue233333/p/8780088.html
Copyright © 2011-2022 走看看