zoukankan      html  css  js  c++  java
  • 3254Corn Fields

    终于通过了啊,代码有些长,不过它是我自己做的第一道状态压缩题目,自主创作的

    #include "iostream"
    #include "string.h"
    #include "algorithm"
    using namespace std;
    int dp[15][177147];
    int n,map[15][15];
    
    bool init(int a){
      for(int i=0;i<n;i++){
        if((a&(1<<i))>0){
          if(map[0][i]==0)return 0;
          if(i==n-1)return 1;
          if((a&(1<<(i+1)))>0)return 0;
        }
      }
      return 1;
    }
    
    bool text(int j,int a){
      for(int i=0;i<n;i++){
        if((a&(1<<i))>0){
          if(map[j][i]==0)return 0;
          if(i==n-1)return 1;
          if((a&(1<<(i+1)))>0)return 0;
        }
      }
      return 1;
    }
    
    bool tran(int j,int a,int b){
      for(int i=0;i<n;i++){
        if((a&(1<<i))>0){
          if((b&(1<<i))>0)return 0;
          if(map[j][i]==0&&(b&(1<<i))>0)return 0;
          if(i==n-1)return 1;
          if((b&(1<<i))>0&&(b&(1<<(i+1)))>0)return 0;
        }
      }
      return 1;
    }
    int main(){
      int i,m,j,k,z;
      while(cin>>m>>n){
        for(i=0;i<m;i++){
          for(j=0;j<n;j++)
          cin>>map[i][j];
        }
        z=(1<<n);
        int sum1=0;
        memset(dp,0,sizeof(dp));
        for(i=0;i<z;i++){
            if(init(i)){
              dp[0][i]=1;
              sum1+=dp[0][i];
            }
        }
        int sum=0;
        for(i=1;i<m;i++){
          for(j=0;j<z;j++){
            dp[i][j]=0;
            if(text(i,j))  //考虑有可能那个位置不可以放牛,可是把它算进去了
            for(k=0;k<z;k++){
              if(tran(i,k,j))
              dp[i][j]+=dp[i-1][k];
            }
            if(i==m-1)sum+=dp[i][j];
          }
        }
        if(sum==0)sum=sum1;
        /*
        for(i=0;i<m;i++){
         for(j=0;j<z;j++){
           cout<<dp[i][j]<<' ';
         }
         cout<<endl;
        }*/
        sum=sum%100000000;
        cout<<sum<<endl;
      }
    }
  • 相关阅读:
    ubuntu使用iso作为本地源
    ubuntu配置简单的DNS服务器
    core data
    Core Animation教程
    制作framework&静态库
    notes
    textkit
    coretext
    nsset
    iOS Development Sites
  • 原文地址:https://www.cnblogs.com/dowson/p/3305487.html
Copyright © 2011-2022 走看看