一般不定方程式の元の理解の包含と除外--cf451Eクラシックタイトル

/ * 
n個のボックスが与えられると、i番目のボックスは、AIの花は、今M花、Q番号を選択プログラムから選択有する
Mに撥定理を受信することにより= X1 + X2 + ... + Xnを
C(M + N-1、 N1)+ SUM {(-1)^(M + N - 1-(N1 + P * 1つのC) - (。+ NP 1)、N1)}
    
 / * 
の#include <ビット/ STDC ++ H.>
 使用して 名前空間STD;
 の#define LLロングロング 
 の#define MOD 1000000007 
LL ANS、N-、S、A [ 30 ]、INV [ 30 ]; 

LLパウ(LL、LLのB){ 
    LL RES = 1。;
     一方、(B){
         IF(%のB 2 
            のRES =のRES *%MOD; 
        B >> = 1 ; A = A *%MOD。
    } 
    戻りRESと、
} 
LL C(LL Y、LLのX){ 
    場合(Y < 0 || X < 0 || Y <X)戻り 0 ; 
    Yの%= MOD。
    もし(Y == 0 || X == 0リターン 1 
    LL ANS = 1 (LL i = 0 ; iは<X、iは++ 
        ANS =(LL)は(YI)* ANS%MOD。
    (LL i = 1 ; iは= xを<I ++は
        ANS = ANS * INV [I]%MOD。
    リターンANS; 
} 

int型のmain(){ 
    CIN >> N >> S。
    (LL i = 1 ; iは= < 20 ; iが++ 
        INV [I] =パウ(I、mod- 2 )。
    
    以下のためにint型 i = 0 ; iがn <; iは++)CIN >> Aを[I]。
    
    以下のために(LL i = 0 ; iが(< 1 << N)、iは++ ){ 
        LLのA = N- 1、B =秒+ N- 1、TMP = 0 もし(I == 0 ){ 
            ANS =(ANS + C(B、A))%MOD。
            継続 ;
        } 
        のためのINT J = 0 ; J <N; J ++ 場合(I&((LL)1 << J)){ 
                TMP ++ 
                B - = A [J] + 1 
            } 
        であれば(TMP%2){ // 减法 
            ANS =(ANS-C(B、A))%MOD。
            ANS =(ANS + MOD)%MOD。
        } 
        { 
            ANS =(ANS + C(B、A))%MOD。
        } 
    } 
    COUT << ANS << ' \ nを' ; 
}

 

おすすめ

転載: www.cnblogs.com/zsben991126/p/11129781.html
おすすめ