[ABC231G] Balls in Boxes
[ABC231G] Balls in Boxes
题解
我们记
考虑构造 EGF:
那么答案转化为:
我们把
再把
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1010,mod=998244353;
ll n,k,c[N],a[N];
ll qpow(ll x,ll y){
ll ret=1;
while(y){
if(y&1)ret=ret*x%mod;
x=x*x%mod;
y>>=1;
}
return ret;
}
int main(){
cin>>n>>k;
c[0]=1;
for(int i=1;i<=n;i++){
cin>>a[i];
for(int j=n;j;j--)c[j]=(a[i]*c[j]+c[j-1])%mod;
c[0]=c[0]*a[i]%mod;
}
ll ans=0,fac=1,p=1,inv=qpow(n,mod-2);
for(int i=0;i<=min(n,k);i++){
ans=(ans+c[i]*fac%mod*p%mod)%mod;
fac=fac*(k-i)%mod;p=p*inv%mod;
}
cout<<ans;
}