1 solutions

  • 0
    @ 2024-12-5 18:19:40

    C++ :

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <string>
    #include <map>
    #include <iostream>
    #include <cmath>
    #include <vector>
    using namespace std;
    const int N = 1005;
    const int mod=1e9+7;
    int C[N+5][N+5],a[N+5];
    void add(int &a, int b) {
    a += b; if(a >= mod) a -= mod;
    }
    void init() {
    C[0][0] = 1;
    for(int i = 1; i <= N; i ++) {
    C[i][0] = C[i][i] = 1;
    for(int j = 1; j < i; j ++)
    C[i][j] = C[i - 1][j - 1], add(C[i][j], C[i - 1][j]);
    }
    }
    int main() {
    // freopen("data/10.in", "r", stdin);
    init();
    int T;
    scanf("%d", &T);
    while(T --) {
    int n,m,sum=0;
    scanf("%d%d", &n, &m);
    for(int i=1;i<=m;i++)
    scanf("%d", &a[i]), sum += a[i];
    int ans=1;
    for(int i=1;i<=m;i++){
    ans = 1ll * ans * C[sum][a[i]] % mod;
    sum-=a[i];
    }
    cout<<ans<<endl;
    }
    return 0;
    }
    
    
    • 1

    Information

    ID
    9177
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By