【省选模拟】20/04/07 亲 (推式子)(生成函数)(多项式)(拉格朗日插值)

33 篇文章 1 订阅
29 篇文章 0 订阅
  • 题意:
    在这里插入图片描述
    ∑ i = 1 n ( n i ) Q i ( ∑ j = 1 i j k ) \sum_{i=1}^n\binom{n}{i}Q^{i}(\sum_{j=1}^ij^k) i=1n(in)Qi(j=1ijk) n ≤ 1 e 9 , k ≤ 3 e 3 , Q ≤ 1 e 9 n\le 1e9,k\le3e3,Q\le 1e9 n1e9,k3e3,Q1e9

发现 3 个大神都有不同的神仙方法,只有我什么都不会

  • 无敌的 l d x ldx ldx
    首先把 ∑ i k \sum i^k ik 插出来,考虑对每个项维护它的贡献,对于第 t t t 项,求
    ∑ i = 1 n ( n i ) i t Q i \sum_{i=1}^n\binom{n}{i}i^tQ^{i} i=1n(in)itQi,构造成卷积形式 Q i = Q n ∗ Q − ( n − i ) Q^i=Q^n*Q^{-(n-i)} Qi=QnQ(ni)
    F t ( x ) = ∑ i = 1 n i t i ! x i F_t(x)=\sum_{i=1}^n\frac{i^t}{i!}x^i Ft(x)=i=1ni!itxi,那么就是求 [ x n ] n ! Q n ( F t ( x ) ∗ exp ⁡ ( 1 Q x ) ) [x^n]n!Q^n(F_t(x)*\exp(\frac{1}{Q}x)) [xn]n!Qn(Ft(x)exp(Q1x))
    考虑 F t F_t Ft 的递推, F 0 = e x F_0=e^x F0=ex F t = x F t − 1 ′ F_t=xF_{t-1}' Ft=xFt1
    发现 F t F_t Ft 可以表示为 A t ∗ e x A_t*e^x Atex 的形式,所以我们只用维护 A t A_t At 的转移, A t = x ( A t − 1 + A t − 1 ′ ) A_t=x(A_{t-1}+A'_{t-1}) At=x(At1+At1)
    然后 A t A_t At 最多只有 k k k 项,枚举一下选哪一项即可

  • 无敌的 z x y zxy zxy
    首先把 ∑ i k \sum i^k ik 插出来,考虑对每个项维护它的贡献,对于第 t t t 项,求
    ∑ i = 1 n ( n i ) i t Q i \sum_{i=1}^n\binom{n}{i}i^tQ^{i} i=1n(in)itQi
    把这个写成 E G F EGF EGF F t ( x ) F_t(x) Ft(x) 表示第 t t t i i i 次幂的和,二项式展开转移
    F t ( x ) = F t − 1 ( x ) ( 1 Q + 1 + Q Q + 1 e x ) F_t(x)=F_{t-1}(x)(\frac{1}{Q+1}+\frac{Q}{Q+1}e^x) Ft(x)=Ft1(x)(Q+11+Q+1Qex)
    发现是个多项式快速幂,那么可以 O ( k log ⁡ 2 k ) O(k\log^2k) O(klog2k) 插值,然后快速幂,然后点乘一下就可以了

  • 无敌的 c y k cyk cyk
    用斯特林数展开
    ∑ i = 1 n ( n i ) Q i ( ∑ j = 1 i ∑ l = 1 k S k , l ( j l ) l ! ) = ∑ l = 1 k S k , l l ! ∑ i = 1 n ( n i ) Q i ∑ j = 1 i ( j l ) = ∑ l = 1 k S k , l l ! ∑ i = 1 n ( n i ) Q i ( i + 1 l + 1 ) = ∑ l = 1 k S k , l l ! ∑ i = 1 n n ! ( i + 1 ) ! ( n − i ) ! ( i − l ) ! i ! ( l + 1 ) ! Q i = ∑ l = 1 k S k , l l + 1 ∑ i = 1 n n ! ( i + 1 ) ( n − i ) ! ( i − l ) ! Q i = ∑ l = 1 k S k , l l + 1 Q l ∑ i = 0 n − l n ! ( i + l + 1 ) ( n − i − l ) ! i ! Q i = ∑ l = 1 k S k , l l + 1 n l ‾ Q l ∑ i = 0 n − l ( n − l i ) ( i + l + 1 ) Q i \sum_{i=1}^n\binom{n}{i}Q^{i}(\sum_{j=1}^i\sum_{l=1}^kS_{k,l}\binom{j}{l}l!)\\=\sum_{l=1}^kS_{k,l}l!\sum_{i=1}^n\binom{n}{i}Q^{i}\sum_{j=1}^i\binom{j}{l}\\=\sum_{l=1}^kS_{k,l}l!\sum_{i=1}^n\binom{n}{i}Q^{i}\binom{i+1}{l+1}\\=\sum_{l=1}^k S_{k,l}l!\sum_{i=1}^n\frac{n!(i+1)!}{(n-i)!(i-l)!i!(l+1)!}Q^{i}\\ =\sum_{l=1}^k \frac{S_{k,l}}{l+1}\sum_{i=1}^n\frac{n!(i+1)}{(n-i)!(i-l)!}Q^{i}\\=\sum_{l=1}^k \frac{S_{k,l}}{l+1}Q^{l}\sum_{i=0}^{n-l}\frac{n!(i+l+1)}{(n-i-l)!i!}Q^{i}\\=\sum_{l=1}^k \frac{S_{k,l}}{l+1}n^{\underline l}Q^{l}\sum_{i=0}^{n-l}\binom{n-l}{i} (i+l+1)Q^{i} i=1n(in)Qi(j=1il=1kSk,l(lj)l!)=l=1kSk,ll!i=1n(in)Qij=1i(lj)=l=1kSk,ll!i=1n(in)Qi(l+1i+1)=l=1kSk,ll!i=1n(ni)!(il)!i!(l+1)!n!(i+1)!Qi=l=1kl+1Sk,li=1n(ni)!(il)!n!(i+1)Qi=l=1kl+1Sk,lQli=0nl(nil)!i!n!(i+l+1)Qi=l=1kl+1Sk,lnlQli=0nl(inl)(i+l+1)Qi
    f l = ∑ i = 0 n − l ( n − l i ) ( i + l + 1 ) Q i = ( l + 1 ) ( Q + 1 ) n − l + ( n − l ) Q ( Q + 1 ) n − l − 1 f_l=\sum_{i=0}^{n-l}\binom{n-l}{i}(i+l+1)Q^{i}\\=(l+1)(Q+1)^{n-l}+(n-l)Q(Q+1)^{n-l-1} fl=i=0nl(inl)(i+l+1)Qi=(l+1)(Q+1)nl+(nl)Q(Q+1)nl1
    那么复杂瓶颈是求斯特林数 O ( k log ⁡ k ) O(k\log k) O(klogk)

  • 题解:
    ∑ i = 1 n ( n i ) Q i ( ∑ j = 1 i j k ) \sum_{i=1}^n\binom{n}{i}Q^{i}(\sum_{j=1}^ij^k) i=1n(in)Qi(j=1ijk) 可以表示成 ( Q + 1 ) n g ( n ) (Q+1)^ng(n) (Q+1)ng(n) 的形式,其中 g ( n ) g(n) g(n) 是关于 n n n k + 1 k+1 k+1 次多项式
    证:把 ( ∑ j = 1 i j k ) (\sum_{j=1}^ij^k) (j=1ijk) 表达成 ∑ i a i ( x i ) \sum_{i}a_i\binom{x}{i} iai(ix),考虑某一项 x k x^k xk,它的贡献是
    ∑ i = 1 n ( n i ) Q i ( i k ) = ∑ i = k n ( n k ) ( n − k i − k ) Q i = ( n k ) Q k ( Q + 1 ) n − k \sum_{i=1}^n\binom{n}{i}Q^i\binom{i}{k}=\sum_{i=k}^n\binom{n}{k}\binom{n-k}{i-k}Q^i=\binom{n}{k}Q^k(Q+1)^{n-k} i=1n(in)Qi(ki)=i=kn(kn)(iknk)Qi=(kn)Qk(Q+1)nk,对每个 n n n ( Q + 1 ) n (Q+1)^n (Q+1)n 都有每一项的一个系数,故可以表示成 ( Q + 1 ) n g ( n ) (Q+1)^ng(n) (Q+1)ng(n)
    那么我们拉个朗日插值就做完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值