Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33204 | masppy | 【S】T1 | C++ | 解答错误 | 10 | 723 MS | 1820 KB | 959 | 2024-10-04 16:52:44 |
#include<bits/stdc++.h> #define ll long long #define lson pos<<1 #define rson pos<<1|1 using namespace std; const int maxn=1e5+10; const ll mod=998244353; const ll inf=1e9+10; ll n,m,ans=0; ll a[maxn],fnt[maxn],bck[maxn]; ll q_pow(ll a,ll b){ ll tmp=1ll; while(b){ if(b&1){ tmp=(tmp*a)%mod; } b>>=1; a=(a*a)%mod; } return tmp; } ll calc(int n,int m){ return fnt[n]*bck[n-m]%mod*bck[m]%mod; } int main(){ // freopen("sequence.in","r",stdin); // freopen("sequence.out","w",stdout); scanf("%lld%lld",&n,&m); fnt[0]=bck[0]=1ll; for(int i=1;i<=n+m;i++){ fnt[i]=(fnt[i-1]*i)%mod; bck[i]=q_pow(fnt[i],mod-2); } ll ans=0; for(int i=0;i<=m;i++){ for(int j=0;j<=n;j++){ ll tmp=4ll*(m-i)*(m-i); tmp=(((tmp*calc(n+i-1,i)%mod)*calc(n,j)%mod)*calc(m-i-1,j-1)%mod*calc(n+m-i-j-1,m-i))%mod; ans=(ans+tmp)%mod; } } printf("%lld",ans); return 0; }