Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32628 | LYLAKIOIAKIOI | 【S】T2 | C++ | 运行出错 | 0 | 0 MS | 252 KB | 1772 | 2024-09-15 20:21:54 |
#include<bits/stdc++.h> #define rf(i,a,b) for(int i=(a);i<=(b);i++) #define rb(i,a,b) for(int i=(a);i>=(b);i--) #define ll long long using namespace std; const int N=1e3+10,V=310; int mod=998244353; int n,v; ll f[2][N][V];bool vis[N][N][V];bool c[N]; int fac[N*5],inv[N*5]; int invp[V*6][V*3]; int qp(int a,int b){ int x=1; while(b){ if(b&1) x=1ll*a*x%mod;b>>=1;a=1ll*a*a%mod; }return x; }int lim=4e3+10; int C(int up,int down){ return 1ll*fac[down]*inv[up]%mod*inv[down-up]%mod; }struct nd{ int id,sm,vl; }; int main(){ freopen("caged.in","r",stdin); freopen("caged.out","w",stdout); fac[0]=1;rf(i,1,lim) fac[i]=1ll*fac[i-1]*i%mod; inv[lim]=qp(fac[lim],mod-2);rb(i,lim-1,0) inv[i]=1ll*inv[i+1]*(i+1)%mod; rf(i,1,lim/6) invp[i][0]=1,invp[i][1]=1ll*inv[i]*fac[i-1]%mod; rf(j,2,lim/6) rf(i,1,lim/6) invp[i][j]=1ll*invp[i][j-1]*invp[i][1]%mod; cin>>v>>n; int ans=0; f[0][0][v]=fac[n]; int fl=0; rf(i,1,n+2){ ans=(ans+1ll*f[fl][n][0]*(i-2)%mod)%mod; //cout<<ans<<endl; fl=1-fl; rf(j,0,n){ rf(k,0,v) f[fl][j][k]=0; } rf(j,0,n){ int fg=v;if(i!=1) fg=n/(i-1); rf(k,1,min(fg,v)){ //cout<<i*k-k<<endl; //cout<<i-1<<' '<<j<<' '<<k<<' '<<f[1-fl][j][k]<<endl; f[1-fl][j][k]%=mod;//min(min(n-j,k),(t)/i) rf(t,0,min(min(n-j,k),n/i)){ //cout<<invp[k+1][t]<<' '<<t<<' '<<k<<endl; f[fl][j+t][t]+=f[1-fl][j][k]*C(t,k)%mod*invp[i][t]%mod; //cout<<p.id+1<<' '<<p.sm+i<<' '<<i<<endl; } } } }cout<<ans; return 0; }