Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33142 | A21μΘ_wjy | 【S】T1 | C++ | 通过 | 100 | 963 MS | 1832 KB | 912 | 2024-10-04 15:21:04 |
#include<bits/stdc++.h> #define int long long using namespace std; const int mod=998244353; const int maxn=507; const int maxm=1e5+7; int fac[maxm<<1],ifac[maxm<<1]; inline int qpow(int a,int b){ int ans=1; while(b){ if(b&1)ans=ans*a%mod; a=a*a%mod; b>>=1; } return ans; } void Init(int n){ fac[0]=1; for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod; ifac[n]=qpow(fac[n],mod-2); for(int i=n-1;i>=0;i--)ifac[i]=ifac[i+1]*(i+1)%mod; } inline int C(int n,int m){ if(n<m||m<0)return 0; return fac[n]*ifac[m]%mod*ifac[n-m]%mod; } int n,m; int ans=0; signed main(){ cin>>n>>m; Init(m+n); for(int s=0;s<=m;s++){ for(int x=0;x<=n;x++){ ans+=((m<<1)-(s<<1))*((m<<1)-(s<<1))%mod*C(n+s-1,s)%mod*C(n,x)%mod*C(m-s-1,x-1)%mod*C(n-x+m-s-1,n-x-1)%mod; ans-=(ans>=mod?mod:0); } } cout<<ans<<endl; }