需要FFT优化。。。
#include<iostream> #include<cstdio> #include<queue> #include<vector> #include<algorithm> #include<cstring> using namespace std; int n,m,x,y; const long long P=998244353; int f[409][160000]; long long ans; int main() { scanf("%d%d%d%d",&n,&m,&x,&y); for(int i=1,t;i<=m;i++) { scanf("%d",&t); if(t==y) x--; } for(int i=0;i<=m;i++) f[1][i]=1LL*(m-i+1)%P*(m-i+2)%P*(m-i+3)%P*(m-i+4)%P*291154603%P; for(int i=2;i<=n;i++) for(int j=0;j<=i*m;j++) for(int k=0;k<=min(j,m);k++) f[i][j]=(f[i][j]+1LL*f[i-1][j-k]*f[1][k]%P)%P; for(int i=x;i<=n*m;i++) ans=(ans+f[n][i])%P; cout<<ans; return 0; }