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

1.枚举行;

2.把有影响的“放不放牛”加入参数中,用二进制数表示该位置放不放牛,再用十进制数表示二进制数;

3.优美的预处理list;

4.优美的位运算比较二进制。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,list[1435],cnt,a[15],d[15][4050],ans;
const int INF=100000000;
bool b[15];
/*计算有多少种合法者 :1431
int list[15][2];
void yu()
{list[0][0]=1;list[0][1]=1;list[1][1]=1;list[1][0]=1;for(int i=2;i<=12;i++){list[i][1]=list[i-2][1]+list[i-1][0];list[i][0]=list[i-1][1]+list[i-1][0];}printf("(%d)",list[12][1]+list[12][0]);
}
*/
int qiu()
{int s=0,r=1;for(int i=m;i;i--){if(b[i])s+=r;r*=2;}return s;
}
void yu(int pre)
{for(int i=pre+2;i<=m;i++){b[i]=1;list[++cnt]=qiu();yu(i);b[i]=0;}
}
int main()
{scanf("%d%d",&n,&m);yu(-1);
//    for(int i=1;i<=cnt;i++)
//        printf("(%d) ",list[i]);memset(b,0,sizeof b);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)scanf("%d",&b[j]);int r=1;for(int j=m;j;j--){if(b[j])a[i]+=r;r*=2;}}for(int i=0;i<=cnt;i++)if(!((~a[1])&list[i]))d[1][list[i]]++;for(int i=2;i<=n;i++)for(int j=0;j<=cnt;j++){if((~a[i])&list[j])continue;for(int k=0;k<=cnt;k++)if((list[j]&list[k])==0){
//                    printf("j=%d k=%d\n",list[j],list[k]);d[i][list[j]]=(d[i][list[j]]+d[i-1][list[k]])%INF;}}for(int i=0;i<=cnt;i++)ans=(ans+d[n][list[i]])%INF;printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/Narh/p/8460526.html

POJ3254Corn 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 (状态压缩DP)

    题目:http://poj.org/problem?id=3254 思路见代码: #include<iostream> using namespace std;const int MOD= ...

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

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

  5. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)

    目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...

  6. 状态压缩DP(大佬写的很好,转来看)

    奉上大佬博客 https://blog.csdn.net/accry/article/details/6607703 动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的 ...

  7. 动态规划-状态压缩DP

    [SCOI2005] 互不侵犯 题目描述 https://www.luogu.com.cn/problem/P1896 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它 ...

  8. POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)

    poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...

  9. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

最新文章

  1. html中看到php代码_如何在HTML中嵌入PHP代码
  2. 在电脑上实现手机app抓包
  3. 算法 排序 python 实现--快速排序
  4. beoplay(BO)耳机拒绝配对的解决方法
  5. nginx.conf删除与否网页都能访问(nginx没有生效)的问题
  6. php输出excel表格乱码和第一个0不显示的解决方法(详细)
  7. 羡慕的泪水!显卡对决!GPU A6000和RTX 3090 性能对比
  8. yum命令 启用仓库_yum仓库详细解读
  9. 中文核心期刊目录(2008年最新版)
  10. 5G+折叠屏:华为Mate Xs打造多项创新体验
  11. 无涂层无胶纸(UWF)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  12. l36h android os,Sony Xperia Z(L36h)怎么刷魅族Flyme OS
  13. bzoj4094 luogu3097 最优挤奶
  14. 手机图片如何转化为Word文档?简单几步轻松转换
  15. 每日一诗词 —— 临江仙
  16. 简单好听的id_简单好听的贴吧id名字大全
  17. 累死你的不是工作方式
  18. 如何快速入门成为一名数据分析师
  19. SDN(Software Defined Network) 软件定义网络学习
  20. Struts2面试常见问题

热门文章

  1. 你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)
  2. 计算机专业学生前端该怎么自学?
  3. linux文件类型为目录,在Linux系统中,基本的文件类型分为()文件,目录文件和文件, 所有的I/..._考试资料网...
  4. matlab 箱图不显示异常值_无功功率显示值与计算值不匹配?
  5. wireshark 开始抓包
  6. python一对一_Python:在数据存储区中建立一对一的关系
  7. java replace stringbuilder_Java StringBuilder replace()方法
  8. 一键清理Quartus工程编译垃圾
  9. 使用猫狗大战数据集进行一次完整的TensorFlow训练
  10. DCMTK: DcmSCP, error:QueryRetrieveLevel larger remaining bytes