bzoj3198 [Sdoi2013]スプリング

ソル:

#include <cstdioを> 
する#include <iostreamの> 
する#include <アルゴリズム> 
の#include <CStringの>
 に#define LL長い長
 の#define N 100005
 の#defineは 2150527国防省
 使用して 名前空間STDを、
INT [N] [ 10 ]、ビン[ 10 ]、HD [MOD + 10 ]、VIS [MOD + 10 ]、C [ 10 ] [ 10 ]、合計[N]、NXT [N]、N、M。
LLヴァル[N]。
ボイドプレ()
{ 
    INT iが= 0 ; I <= 6 ; I ++ 
        C [i]は[0 ] = C [i]は[I] = 1 以下のためにINT iは= 1 ; I <= 6 ; I ++ のためのINT J = 1、J <I、J ++ 
    C [I] [J] = C [I- 1 ] [J- 1 ] + C [I - 1 ] [J]。
} 
LL CALC(INT ST)
{ 
    LL ANS = 0int型 TOT = 0 ;
    以下のためにINT iが= 1 ; I <= N; I ++)// 枚举行
    { 
        LL TMP= 0 ; int型J、K;
         のため(J = 1 ; J <= 6 ; J ++)// 6つの数字の行ごと
         // 我々の列挙の範囲内のどのような月を見るために
           IF(ST&ビン[J- 1 ] )
               TMP = TMP * 1000003 + A [I]、[J]; 
        J = TMP%MOD; 
        J < 0 J + = MOD:?1。;
         IF(VIS [J] =!ST)
        { 
            VIS [J] = ST; 
            HD [J] = 0 ; 
        } 
        ため(K = HD [J]; K; K = NXT [K])
        { 
            場合(ヴァル[K] == TMP)
            { 
                ANS + = 和[K]。
                和[K] ++ ;
                休憩; 
            } 
        } 
        もし(!K)
        { 
            ヴァル[ ++ TOT = TMP。
            【TOT]和 = 1 
            NXT [TOT] = HD [J]。
            HD [J] = TOT。
        } 
    } 
    戻りANSを、
    //我々の列挙の月に、数が等しくなるN行の統計、
}
 int型のmain()
{ 
    scanfの(" %Dの%のD "、およびN-、&M)
     のためのINT I = 1 ; I <= I ++; N- のためのINT J = 1。 ; J <= 6。 ; J ++ 
              scanfの(" %のD "、&​​A [I] [J]); 
    ビン[ 0 ] = 1 ; 
    予め(); 
    のためのINT I = 。1 ; I <= 8 ; I ++ 
    ビン[I]ビン= [I- 1 ] << 1 ; 
    LL ANS = 0 ;
     のためにint型は、私は= 0 ; I < 64 ; I ++ // 列挙月、統計がNラインのために、彼らは月の数を持っているもので、私互いに等しい
     // 私は、少なくとも互いにヶ月に等しいように、他の月の統計ので
    {
         INT = CNT 0 ;
         のためのINT J = 0 ; J < 6。、J ++)// ルック月有効を有しますいくつかの
            IF(I&ビン[J])
                CNT ++ ;
         IF(CNT < M)
            続けて
        LL T = CALC(I)* C [CNT] [M]。
        もし((CNT-M)%2  - = T。
        それ以外の + = T; 
    } 
    Coutを << 年。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/cutemush/p/12019506.html