提交时间:2024-10-04 19:53:44
运行 ID: 33292
#include<bits/stdc++.h> using namespace std; #define mod 998244353 #define int long long int n,m,fac[200100],inv_to_fac[200010],ans=0; int qp(int a,int x){ int res=1; while(x){ if(x&1){ res=(res*a)%mod; }a=(a*a)%mod; x>>=1; }return res; }void init(){ fac[0]=inv_to_fac[0]=1; for(int i=1;i<=200000;i++){ fac[i]=(fac[i-1]*i)%mod; inv_to_fac[i]=qp(fac[i],mod-2); } }inline int C(int n,int m){//左大而右小 if(m>n) return 0; return fac[n]*inv_to_fac[m]%mod*inv_to_fac[n-m]%mod; }signed main(){ cin>>n>>m; init(); for(int nowm=0;nowm<=m;nowm++){ for(int nowapos=1;nowapos<=n-1;nowapos++){ if(m-nowm<nowapos-1) continue; int nowans=2*(m-nowm);nowans=(nowans*nowans)%mod; int nowbpos=n-nowapos; //cout<<m-nowm<<' '<<nowapos<<' '<<nowbpos<<'\n'; //cout<<C(m-nowm+nowapos-1,nowapos-1)%mod<<'\n'; nowans=nowans*C(n,nowapos)%mod*C(nowm+n-1,n-1)%mod*C(m-nowm-1,nowapos-1)%mod*C(m-nowm+nowbpos-1,nowbpos-1)%mod; ans=(ans+nowans)%mod; } }cout<<ans<<'\n'; }