菲菲和牛牛
题目描述
输入格式
第一行包括两个整数n,m表示棋盘为n行m列。
输出格式
一个整数表示可能的棋局种数。
样例
样例输入1
1 1
样例输出1
2
样例输入2
2 3
样例输出2
10
样例输入3
10 10
样例输出3
184756
数据范围与提示
对于 \(20\)% 的数据 \(n,m<=10\)
对于 \(30\)% 的数据 \(n,m<=20\)
另有 \(20\)% 的数据 \(n<=5\)
另有 \(20\)% 的数据 \(m<=5\)
对于\(100\)% 的数据 \(n,m<=100000\)
code
/*
1 2 3 4 5 6 7 3
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 998244353;
int ny(int a){
int ans=1;
int n=mod-2;
while(n){
if(n&1)ans=ans*a%mod;
a=a*a%mod;
n>>=1;
}
return ans;
}
long long jc(int x){
long long ans = 1;
for(int i=1;i<=x;i++)
ans=ans*i%mod;
return ans;
}
signed main(){
int n,m;cin>>n>>m;
int tmp=jc(n)*jc(m)%mod;
int ans=jc(n+m)*ny(tmp)%mod;
return cout<<ans<<endl,0;
}