P5591 小猪佩奇学数学
\[\sum_{i=0}^{n}\binom{n}{i}p^i\lfloor\dfrac{i}{k}\rfloor\\
=\sum_{i=0}^{n}\binom{n}{i}p^i\dfrac{i-i\%k}{k}\\
=\dfrac{1}{k}\sum_{i=0}^{n}\binom{n}{i}p^i(i-i\%k)\\
=\dfrac{1}{k}\sum_{i=0}^{n}\binom{n}{i}p^ii-\dfrac{1}{k}\sum_{j=0}^{k-1}j\sum_{i=0}^{n}[i\bmod k=j]\binom{n}{i}p^i
\]
\(\dfrac{1}{k}\) 暂且略去。
先看前面,看着很小清新。
\[\sum_{i=0}^{n}\binom{n}{i}p^ii\\
=n\sum_{i=0}^{n}\dfrac{i}{n}\binom{n}{i}p^i\\
=n\sum_{i=0}^{n}\binom{n-1}{i-1}p^i\\
=np\sum_{i=0}^{n-1}\binom{n-1}{i}p^i\\
=np(p+1)^{n-1}
\]
再看后面
\[\sum_{j=0}^{k-1}j\sum_{i=0}^{n}[i\bmod k=j]\binom{n}{i}p^i\\
=\dfrac{1}{k}\sum_{j=0}^{k-1}j\sum_{i=0}^{n}\sum_{t=0}^{k-1}\omega_{k}^{t(i-j)}\binom{n}{i}p^i\\
=\dfrac{1}{k}\sum_{t=0}^{k-1}\sum_{j=0}^{k-1}j\omega_{k}^{-tj}\sum_{i=0}^{n}\binom{n}{i}p^i\omega_{k}^{ti}\\
=\dfrac{1}{k}\sum_{t=0}^{k-1}\sum_{j=0}^{k-1}j\omega_{k}^{-tj}(p\omega_{k}^{t}+1)^n\\
=\dfrac{1}{k}\sum_{t=0}^{k-1}(p\omega_{k}^{t}+1)^n\sum_{j=0}^{k-1}j\omega_{k}^{-tj}\\
\]
后面那个 \(\omega\) 是个等差乘等比的形式,习惯性单独拉出来推。
\[S=\sum_{j=0}^{k-1}j(\omega_{k}^{-t})^j\\
\omega_{k}^{-t}S=\sum_{j=1}^{k}(j-1)(\omega_{k}^{-t})^j\\
(1-\omega_{k}^{-t})S=\sum_{j=0}^{k-1}(\omega_{k}^{-t})^j-(k-1)\omega_{k}^{-tk}-1\\
=[k|t]k-(k-1)-1=-k\\
S=\dfrac{k}{\omega_{k}^{-t}-1}
\]
哼哼,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,一个细节调死人了。这个并不完全是等比数列,开头有 \(0\) ,我大E了,没有闪,被偷袭了。这个就是第三步 \(-1\) 的原因。
还要特判 \(t=0\) 。
#define mod 998244353
inline int qpow(int n,int k){int res=1;for(;k;k>>=1,n=1ll*n*n%mod)if(k&1)res=1ll*n*res%mod;return res;}
int n,p,k,w[1<<20],ans;
signed main(){
n=read(),p=read(),k=read();
w[0]=1,w[1]=qpow(3,(mod-1)/k);
for(int i=2;i<k;++i)w[i]=1ll*w[i-1]*w[1]%mod;
ans=1ll*n*p%mod*qpow(p+1,n-1)%mod;
int res=0;
for(int i=0;i<k;++i){
int x=qpow(1ll*p*w[i]%mod+1,n),y=0;
if(i)y=1ll*k*qpow(w[k-i]-1,mod-2)%mod;
else y=1ll*k*(k-1)/2%mod;
res=(res+1ll*x*y%mod)%mod;
}
res=1ll*res*qpow(k,mod-2)%mod,ans=(ans+mod-res)%mod;
ans=1ll*ans*qpow(k,mod-2)%mod;
cout<<ans<<'\n';
}
路漫漫其修远兮,吾将上下而求索