-Cornフィールドオフ牛

トピックポータル

ゾル: 01 INTに圧縮m番目の各列の可動圧力調整と、等

  • 圧力DPのように
    #include " ビット/ STDC ++ H。" 
    使用 名前空間STDを、
    const  int型 MAXN = 15 ;
    const  int型 MOD = 1E8;
    INTのN、M。
    BOOL [MAXN] [MAXN];融点 
    ベクター < INT > NUM [MAXN]、DP [MAXN]。
    ボイド DFSは(int型 I、int型 J、int型K){
         場合(J> M){ 
            NUM [I] .push_back(K)。
            DP [I] .push_back(0 )。
            返します
        }
        DFS(I、Jの +1、K << 1 )。
        もし((K&1)== 0 && MP [I]、[J + 1 ] == 1)DFS(I、J + 1、K << 1 | 1 )。
    } 
    int型のmain(){ 
        scanf関数(" %D%dの"、&​​N、&M)。
        int型 i = 1 ; iが<= N iが++ ){
             ためINT J = 1 ; J <= Mであり、j ++)のscanf(" %dの"、および MP [I] [J])。
            DFS(I、00 ); 
        } 
        のためのint型 J = 0 ; J <DP [ 1 ] .size(); J ++)DP [ 1 ] [J] = 1 以下のためにint型 I = 2 ; iが<= N; iは++ ){
             ためのint型 J = 0 ; J <DP [i]は.size(); J ++ ){
                 ためのint型のk = 0 ; K <DP [I - 1 ] .size(); kは++ ){
                     もし、((NUM [I] [J]&NUM [I - 1 ] [K])== 0
                    { 
                        DP [I] [J] =(DP [I] [J] + DP [I - 1 ] [K])%MOD。
                    } 
                } 
            } 
        } 
        int型 ANS = 0 int型 J = 0 ; J <DP [N] .size(); J ++)ANS =(ANS + DP [n]は[J])%MOD。
        printf(" %d個の\ n " 、ANS)。
        リターン 0 ; 
    }

     

おすすめ

転載: www.cnblogs.com/Angel-Demon/p/11109628.html