问题描述
输入描述
输出描述
样例输入
3 3
样例输出
10
还是粘一下大佬lt的题解
比赛的时候感觉就是这个公式,三分钟造了两个样列确定了一下,然后就写了,一发过了,开心,比完lt给我看了一下题解,看懂了,但还是菜。
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll mod=998244353;
const int N=6500;
ll A[N],inv[N];
ll quick_mod(ll a,ll b){
ll ans=1%mod;
while(b){
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
void init(){
A[0]=1;
for(int i=1;i<N;++i){
A[i]=A[i-1]*i%mod;
}
inv[N-1]=quick_mod(A[N-1],mod-2);
for(int i=N-2;i>=0;--i){
inv[i]=inv[i+1]*(i+1)%mod;
}
}
ll C(int n,int m){
return (A[n]*inv[m]%mod*inv[n-m]%mod)%mod;
}
int main(){
init();
int n,m;
scanf("%d %d",&n,&m);
printf("%lld\n",C(n+m-1,m-1));
return 0;
}