2021牛客多校9 A Math Challenge(类欧几里得算法+自然数幂前缀和)

这篇博客介绍了如何利用类欧几里得算法解决一个涉及自然数幂前缀和的问题。通过分析和二项式定理展开,将复杂问题转化为递归求解,最终实现O(q²logn + q³)的时间复杂度。
摘要由CSDN通过智能技术生成

题意

∑ i = 0 n ∑ j = 1 ⌊ a i + b c ⌋ i p j q \sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b}{c}\rfloor}i^pj^q i=0nj=1cai+bipjq。对 998244353 998244353 998244353 取模。
其中, 1 ≤ n , c ≤ 1 0 9 , 0 ≤ a , b ≤ 1 0 9 , 0 ≤ p , q ≤ 50 1\le n,c\le 10^9,0\le a, b\le 10^9,0\le p,q\le 50 1n,c109,0a,b109,0p,q50

分析

这形式一看就很类欧,考虑像类欧那样求。
首先定义 f ( a , b , c , n , p , q ) = ∑ i = 0 n ∑ j = 1 ⌊ a i + b c ⌋ i p j q f(a,b,c,n,p,q)=\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b}{c}\rfloor}i^pj^q f(a,b,c,n,p,q)=i=0nj=1cai+bipjq

  1. b ≥ c b\ge c bc
    ∑ i = 0 n ∑ j = 1 ⌊ a i + b c ⌋ i p j q = ∑ i = 0 n ∑ j = 1 ⌊ a i + b   m o d   c c ⌋ + ⌊ b c ⌋ i p j q \sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b}{c}\rfloor}i^pj^q=\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b ~mod~c}{c}\rfloor+\lfloor{\frac{b}{c}}\rfloor}i^pj^q i=0nj=1cai+bipjq=i=0nj=1cai+b mod c+cbipjq
    k = ⌊ b c ⌋ k=\lfloor{\frac{b}{c}}\rfloor k=cb
    考虑求 ∑ i = 0 n ∑ j = 1 k i p j q \sum\limits_{i=0}^{n}\sum\limits_{j=1}^{k}i^pj^q i=0nj=1kipjq。很显然这就是两个自然数幂前缀和相乘,要注意减去 q = 0 q=0 q=0 的情况。
    接下来考虑另一部分,即
    ∑ i = 0 n i p ∑ j = 1 ⌊ a i + b   m o d   c c ⌋ ( j + k ) q \sum\limits_{i=0}^{n}i^p\sum\limits_{j=1}^{\lfloor\frac{ai+b ~mod~c}{c}\rfloor}(j+k)^{q} i=0nipj=1cai+b mod c(j+k)q,用二项式定理展开,可得:
    ∑ i = 0 n i p ∑ j = 1 ⌊ a i + b   m o d   c c ⌋ ( j + k ) q = ∑ i = 0 n i p ∑ j = 1 ⌊ a i + b   m o d   c c ⌋ ∑ t = 0 q C q t j t k q − t = ∑ t = 0 q C q t k q − t ∑ i = 0 n ∑ j = 1 ⌊ a i + b   m o d   c c ⌋ i p j t = ∑ t = 0 q C q t k q − t f ( a , b   m o d   c , c , n , p , t ) \sum\limits_{i=0}^{n}i^p\sum\limits_{j=1}^{\lfloor\frac{ai+b ~mod~c}{c}\rfloor}(j+k)^{q}=\sum\limits_{i=0}^{n}i^p\sum\limits_{j=1}^{\lfloor\frac{ai+b ~mod~c}{c}\rfloor}\sum\limits_{t=0}^{q}C_q^tj^tk^{q-t}=\sum\limits_{t=0}^{q}C_q^tk^{q-t}\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b ~mod~c}{c}\rfloor}i^pj^t=\sum\limits_{t=0}^{q}C_q^tk^{q-t}f(a,b~mod~c,c,n,p,t) i=0nipj=1cai+b mod c(j+k)q=i=0nip<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值