题意
求 ∑i=0n∑j=1⌊ai+bc⌋ipjq\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b}{c}\rfloor}i^pj^qi=0∑nj=1∑⌊cai+b⌋ipjq。对 998244353998244353998244353 取模。
其中,1≤n,c≤109,0≤a,b≤109,0≤p,q≤501\le n,c\le 10^9,0\le a, b\le 10^9,0\le p,q\le 501≤n,c≤109,0≤a,b≤109,0≤p,q≤50。
分析
这形式一看就很类欧,考虑像类欧那样求。
首先定义 f(a,b,c,n,p,q)=∑i=0n∑j=1⌊ai+bc⌋ipjqf(a,b,c,n,p,q)=\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{\lfloor\frac{ai+b}{c}\rfloor}i^pj^qf(a,b,c,n,p,q)=i=0∑nj=1∑⌊cai+b⌋ipjq。
-
b≥cb\ge cb≥c
∑i=0n∑j=1⌊ai+bc⌋ipjq=∑i=0n∑j=1⌊ai+b mod cc⌋+⌊bc⌋ipjq\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^qi=0∑nj=1∑⌊cai+b⌋ipjq=i=0∑nj=1∑⌊cai+b mod c⌋+⌊cb⌋ipjq
记 k=⌊bc⌋k=\lfloor{\frac{b}{c}}\rfloork=⌊cb⌋
考虑求 ∑i=0n∑j=1kipjq\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{k}i^pj^qi=0∑nj=1∑kipjq。很显然这就是两个自然数幂前缀和相乘,要注意减去 q=0q=0q=0 的情况。
接下来考虑另一部分,即
∑i=0nip∑j=1⌊ai+b mod cc⌋(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=0∑nipj=1∑⌊cai+b mod c⌋(j+k)q,用二项式定理展开,可得:
∑i=0nip∑j=1⌊ai+b mod cc⌋(j+k)q=∑i=0nip∑j=1⌊ai+b mod cc⌋∑t=0qCqtjtkq−t=∑t=0qCqtkq−t∑i=0n∑j=1⌊ai+b mod cc⌋ipjt=∑t=0qCqtkq−tf(a,b mod 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=0∑nipj=1∑⌊cai+b mod c⌋(j+k)q=i=0∑nipj=1∑⌊cai+b mod c⌋t=0∑qCqtjt

这篇博客介绍了如何利用类欧几里得算法解决一个涉及自然数幂前缀和的问题。通过分析和二项式定理展开,将复杂问题转化为递归求解,最终实现O(q²logn + q³)的时间复杂度。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=119787608&d=1&t=3&u=ebe32445eefe4c68ba22420bed121548)
292

被折叠的 条评论
为什么被折叠?



