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

思路见代码:

#include<iostream>
using namespace std;const int MOD=100000000;
const int MAX_N_M=12;
int row_state[MAX_N_M];
// 枚举出合法的状态数
int LegalState[2000],nstate;
int dp[MAX_N_M][2000],n,m;
/*dp[i][j]:= 第i行,状态为j时的方案数
*/void init()  //枚举合法状态
{int allstate=0x1<<12;nstate=0;for(int i=0;i<allstate;i++){if((i&(i<<1))==0){LegalState[nstate++]=i;}}
}int main()
{while(cin>>m>>n){init();for(int i=0;i<m;i++){row_state[i]=0;for(int j=n-1;j>=0;j--){int s;cin>>s;row_state[i] += s<<j;  //每行的状态 }}// 处理第1行的情况// 合法状态与每一行的状态按位与  for(int i=0;i<nstate;i++){dp[0][i]=((row_state[0]&LegalState[i]) == LegalState[i])?1:0;}for(int i=1; i<m; i++){for(int j=0; j<nstate; j++){if((row_state[i]&LegalState[j]) == LegalState[j]){for(int k=0; k<nstate; k++){if(dp[i-1][k] && (LegalState[k]&LegalState[j])==0){dp[i][j] += dp[i-1][k];dp[i][j] %=MOD;}}}}}int res=0;for(int i=0;i<nstate;i++){res += dp[m-1][i];res %= MOD;}cout<<res<<endl;}
}

poj 3254 Corn Fields (状态压缩DP)相关推荐

  1. poj 3254 Corn Fields 状态压缩dp

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K       Description Farmer John has purchased a ...

  2. poj - 3254 Corn Fields (状态压缩dp入门)

    http://poj.org/problem?id=3254 参考:http://blog.csdn.net/accry/article/details/6607703 农夫想在m*n的土地上种玉米, ...

  3. POJ 3254 Corn Fields (状态压缩)

    刚开始的思路是  把0-2^x的 所有状态枚举, 然后找符合条件的,   但是 发现 当12*12 时  1的数量x 超过64  这是个庞大的数字, 跟本就没法枚举: 想到用状态压缩,  但是 怎么压 ...

  4. Poj - 3254 Corn Fields (状压DP)(入门)

    题目链接:https://vjudge.net/contest/224636#problem/G 转载于:https://blog.csdn.net/harrypoirot/article/detai ...

  5. POJ - 3254 Corn Fields(状压dp)

    题目链接:点击查看 题目大意:给出一个n*m的地图,有些位置不能放牧,然后放牧的条件是相邻两个格子不允许同时使用,问可行方案有几种 题目分析:因为给出的数据范围很小,并且放牧的状态是放或者不放,很容易 ...

  6. 状态压缩dp入门 第一题 POJ 3254 Corn Fields

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6460   Accepted: 3436 Descr ...

  7. POJ 3254 Corn Fields [DP]

    题意:略. 思路:第一次做状态压缩的dp. 在这里说一下状态压缩的原则.因为每一行只有最多12个格子,每个格子只有1(可放牛)和0(不可放牛)两种状态,这总共是2^12种状态,直接用一个int整型变量 ...

  8. POJ - 3254 - Corn Fields

    线上题目: Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6936   Accepted: 3697 ...

  9. POJ 1185 炮兵阵地(状态压缩DP)

    Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用&quo ...

最新文章

  1. iOS9的新特性以及适配方案
  2. java多态替换switch_使多态性无法解决那些switch / case语句的麻烦
  3. 悲观锁和乐观锁的详细分析
  4. 暮色森林模组_我的世界暮色森林mod全攻略,尤其是Boss击杀顺序,一定要牢记...
  5. 杭州 3~5年 前端面经,高频面试题总结
  6. 怎么修改_论文查重之后怎么修改?
  7. 接口的抽象与实现(概述)
  8. python numpy array中维度的区别 array.shape
  9. J2ME的移动支付系统的客户端的实现
  10. r语言kendall协和系数_多变量Kendall协和系数检验.ppt
  11. redis windows切割日志文件_开发者笔记:Windows下搭建简易单机Redis集群测试环境...
  12. 微信开发者工具下载地址
  13. CCS软件的Graph功能
  14. 在Debian上安装FlashPlayer10
  15. 行为树 --- [3] BehaviorTree.CPP在Windows下的使用(基于VSCode)
  16. android keep倒计时,Android仿Keep运动休息倒计时圆形控件
  17. dp和px,那些不得不吐槽的故事——Android平台图
  18. Falsy Bouncer
  19. @Resource注解用法
  20. LVS 的 Tunneling 模式

热门文章

  1. Elasticsearch的javaAPI之query dsl-queries
  2. 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途...
  3. SXS完全查杀+预防方案2
  4. date string 转化为weekday
  5. python selenium xpath_python+selenium十四:xpath和contains模糊匹配
  6. 西门子s7-400闭环控制模块_西门子6ES7312-1AE14-0AB0
  7. aac文件损坏修复软件_Mac不能安装非信任应用的解决方法 MAC软件安装必读 打不开身份不明的开发者?文件已损坏?...
  8. vsftp匿名访问目录_vsftp 使用匿名帐号登陆
  9. java中unknown source_java中GUI编程中的unknown source问题
  10. 这三个Python小技巧你要知道