牛客(多校5):Easy

在这里插入图片描述
示例1:
输入

5
2 2 2
3 3 2
4 4 2
5 3 3
5 5 3

输出

1
6
20
6
69

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int M=998244353;
const int maxn=2e6+10;

int f[maxn],nf[maxn],inv[maxn],__,n,m,k,ans;

int C(int x,int y){return 1ll*f[x]*nf[y]%M*nf[x-y]%M;}
int main(){
    inv[1]=1; for (int i=2;i<maxn;i++) inv[i]=M-1ll*(M/i)*inv[M%i]%M;
    f[0]=nf[0]=1; 
	for (int i=1;i<maxn;i++) 
	f[i]=1ll*f[i-1]*i%M,nf[i]=1ll*inv[i]*nf[i-1]%M;
	
    cin >> __;
    while (__--){
        cin >> n >> m >> k; ans=0;
        for (int i=k;i<=min(n,m);i++) 
		ans=(ans+1ll*C(i-1,k-1)*C(n-i+k-1,k-1)%M*C(m-i+k-1,k-1))%M;
        cout << ans << endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46144237/article/details/107583830