• 4710: [Jsoi2011]分特产


    4710: [Jsoi2011]分特产

    链接

    分析:

      容斥原理+隔板法。

    代码:

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<iostream>
    #include<cmath>
    #include<cctype>
    #include<set>
    #include<queue>
    #include<vector>
    #include<map>
    using namespace std;
    typedef long long LL;
    
    inline int read() {
        int x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
        for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';return x*f;
    }
    
    const int N = 2005, mod = 1e9 + 7;
    int C[N][N], a[N], n, m;
    
    int Calc(int x) {
        int ans = 1;
        for (int i = 1; i <= m; ++i) 
            ans = 1ll * ans * C[a[i] + x - 1][x - 1] % mod;
        ans = 1ll * ans * C[n][x] % mod;
        return ans;
    }
    
    int main() {
        n = read(), m = read();
        for (int i = 1; i <= m; ++i) a[i] = read();
        C[0][0] = 1;
        for (int i = 1; i <= 2000; ++i) { 
            C[i][0] = 1;
            for (int j = 1; j <= i; ++j) 
                C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;    
        }
        int ans = Calc(n);
        for (int i = 1; i <= n; ++i) {
            if (i & 1) ans = (ans - Calc(n - i) + mod) % mod;
            else ans = (ans + Calc(n - i)) % mod;        
        }
        cout << (ans + mod) % mod;
        return 0;
    }
  • 相关阅读:
    面板评分太低会算两次
    没有使用大漩涡传送门没有杀死大法师瓦格斯
    win10创建本地用户
    延迟着色
    GPU 优化总结
    UE4 减少APK包的大小
    UE4 性能优化方法(工具篇)
    Unreal Engine 4的常见Tips
    虚幻引擎4设置Visual Studio
    模型导入的单位问题
  • 原文地址:https://www.cnblogs.com/mjtcn/p/10502183.html
Copyright © 2020-2023  润新知