博客看大图


#include<bits/stdc++.h>
using namespace std;
const int mod=998244353,T=5e3+10,N=1e3+10;
typedef long long ll;

ll f[T+10][T+10],c[N<<1][N<<1],n,x,y,t,a,b;


int main(){
	//ios::sync_with_stdio(false);
	f[0][0]=1;
	for(int t=1;t<T;t++){
		f[t][0]=1;
		for(int i=1;i<=t;i++){
			f[t][i]=(f[t-1][i-1]+f[t-1][i])%mod;
		}
	}
	for(int i=0;i<N<<1;i++){
		c[i][0]=c[i][i]=1;
		for(int j=1;j<i;j++){
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
		}
	}

	for(scanf("%d",&n);n--;){
		scanf("%d%d%d",&x,&y,&t);
		if(x+y>t) puts("0");
		else{
			b=x+y;
			a=x;
			printf("%lld\n",c[b][a]*f[t][b]%mod);
		}
	}
}

是不是好简单,之前用C(n,m)=n!/m!(m-n)!+逆元算gg了,后面看别人直接打表杨辉三角算了下才1e6,