zoukankan      html  css  js  c++  java
  • 【Codeforces 258E】 Devu and Flowers

    【题目链接】

                http://codeforces.com/contest/451/problem/E

    【算法】

                容斥原理

    【代码】

               

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int P = 1e9 + 7;
    
    int i,j,n,s,ans,MASK;
    ll m,t;
    ll a[30],f[30];
    int inv[30];
    
    inline int power(int a,int n)
    {
            int res = 1,b = a;
            while (n)
            {
                    if (n & 1) res = 1ll * res * b % P;
                    b = 1ll * b * b % P;
                    n >>= 1;
            }
            return res;
    }
    inline int C(ll x,int y)
    {
            int i,res = 1;
            if (y < 0 || x < y || x < 0) return 0;
            if (x == 0 || y == 0) return 1;
            x %= P;
            for (i = x; i >= x - y + 1; i--) res = 1ll * res * i % P;
            for (i = 1; i <= y; i++) res = 1ll * res * inv[i] % P;
            return res;            
    }
    
    int main() 
    {
            
            scanf("%d%I64d",&n,&m);
            for (i = 1; i <= n; i++) scanf("%I64d",&a[i]);
            for (i = 1; i <= 30; i++) inv[i] = power(i,P-2);
            MASK = 1 << n;
            ans = 0;
            for (i = 0; i < MASK; i++)
            {
                    if (i == 0) ans = (ans + C(n+m-1,n-1)) % P;
                    else
                    {
                            s = 0;
                            t = n + m;
                            for (j = 0; j < n; j++)
                            {
                                    if (i & (1 << j))
                                    { 
                                            s++;
                                            t -= a[j+1];
                                    }
                            }        
                            t -= (s + 1);
                            if (s & 1) ans = (ans - C(t,n-1) + P) % P;
                            else ans = (ans + C(t,n-1)) % P;
                    }    
             }
            printf("%d
    ",ans);
                
            return 0;
        
    }
  • 相关阅读:
    Spring MVC
    Spring
    MyBatis
    Java Listener
    Java Filter
    JSTL
    EL
    pyltp安装
    美团面经-java开发
    oppo面经-java开发
  • 原文地址:https://www.cnblogs.com/evenbao/p/9293517.html
Copyright © 2011-2022 走看看