zoukankan      html  css  js  c++  java
  • POJ 3254 Corn Fields (状压DP入门)

    http://poj.org/problem?id=3254

    状压DP:

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 
     5 int dp[13][1<<13];
     6 int mp[13],s[1<<13];
     7 int n,m;
     8 
     9 int check1(int x)
    10 {
    11     return x&(x<<1);
    12 }
    13 
    14 int check2(int x,int p)
    15 {
    16     return mp[x]&p;
    17 }
    18 
    19 int main()
    20 {
    21     cin>>n>>m;
    22     memset(dp,0,sizeof(dp));
    23     memset(mp,0,sizeof(mp));
    24     memset(s,0,sizeof(s));
    25     for (int i=1;i<=n;i++)
    26     {
    27         for (int j=1;j<=m;j++)
    28         {
    29             int x;
    30             cin>>x;
    31             if (x==0) mp[i]+=1<<(j-1);
    32         }
    33     }
    34     int cut=0;
    35     for (int i=0;i<(1<<m);i++)
    36     {
    37         if (!check1(i)) s[cut++]=i;
    38     }
    39     for (int i=1;i<=n;i++)
    40     {
    41         for (int j=0;j<cut;j++)
    42         {
    43             if (check2(i,s[j])) continue;
    44             if (i==1)
    45             {
    46                 dp[1][j]=1;
    47                 continue;
    48             }
    49             for (int k=0;k<cut;k++)
    50             {
    51                 if (s[j]&s[k]) continue;
    52                 dp[i][j]+=dp[i-1][k];
    53             }
    54         }
    55     }
    56     int ans=0;
    57     for (int i=0;i<cut;i++)
    58     {
    59         ans=(ans+dp[n][i])%100000000;
    60     }
    61     cout<<ans<<endl;
    62 }
  • 相关阅读:
    java lang(Class)
    java.lang(StringBuffer)
    java.lang(String)
    java.lang包【Object类】
    IIS发布错误
    ASP.NET MVC之视图生成URL
    JQuery性能优化
    ERP联系记录管理(十七)
    C# virtual和abstract的
    ERP联系人查询和修改(十六)
  • 原文地址:https://www.cnblogs.com/pblr/p/5279910.html
Copyright © 2011-2022 走看看