去博客看大图
#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,