正题

题目链接:http://poj.org/problem?id=2411


题目大意

有n×mn×mn\times m的矩阵,用1×21×21\times 2的方块填满有多少种方法。


解题思路

用1表示竖着的块的上面,其他都是0。
我们先计算出所有单排合法状态(横着的都是连续的偶数)。
然后我们用statei or statei−1stateiorstatei−1state_i\ or\ state_{i-1}就是所有横着的方块就是0,然后判断是否合法,然后statei and statei−1stateiandstatei−1state_i\ and\ state_{i-1}就是所有竖着的不合法的方块就是1。
然后判断。


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m;
bool state[1<<11];
long long f[12][1<<11];
int main()
{while(scanf("%d%d",&n,&m)&&n){for(int i=0;i<1<<m;i++){bool cnt=0,has_odd=0;for(int j=0;j<m;j++)if(i>>j&1)has_odd|=cnt,cnt=0;else cnt^=1;state[i]=has_odd|cnt?0:1;//统计合法情况}f[0][0]=1;for(int i=1;i<=n;i++)for(int j=0;j<1<<m;j++){f[i][j]=0;for(int k=0;k<1<<m;k++)if((j&k)==0&&state[j|k])//判断是否合法f[i][j]+=f[i-1][k];//累计答案}printf("%lld\n",f[n][0]);}
}

POJ2411-Mondriaan's Dream【状态压缩dp】相关推荐

  1. POJ 2411 Mondriaan's Dream(状态压缩DP)

    题目链接 早就见过这个题,开始以为有公式的,推了几次没推出,后来知道这个题是状态压缩DP.最近开始看状态压缩,本想试着解出来,但是这个比那个牛吃草复杂多了...位运算还是不是很熟练,这个题的解题报告有 ...

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

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

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

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

  4. DP大作战—状态压缩dp

    题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...

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

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

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

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

  7. hdu1074 状态压缩dp+记录方案

    题意:       给你一些作业,每个作业有自己的结束时间和花费时间,如果超过结束时间完成,一天扣一分,问你把n个作业完成最少的扣分,要求输出方案. 思路:       状态压缩dp,记录方案数的地方 ...

  8. FZU-2218 Simple String Problem(状态压缩DP)

    原题地址: 题意: 给你一个串和两个整数n和k,n表示串的长度,k表示串只有前k个小写字母,问你两个不含相同元素的连续子串的长度的最大乘积. 思路: 状态压缩DP最多16位,第i位的状态表示第i位字母 ...

  9. 《算法竞赛进阶指南》打卡-基本算法-AcWing 91. 最短Hamilton路径:位运算、状态压缩dp、dp

    文章目录 题目解答 题目链接 题目解答 分析: 状态压缩dp是用二进制数来表示状态. 数据范围n = 20, 那么状态总量就是2202^{20}220个状态. 可以按照以下思路去思考: 哪些点被用过 ...

  10. 状态压缩DP AcWing算法提高课 (详解)

    基础课的状态压缩点这里 基础课中 蒙德里安的梦想 属于 棋盘式状态压缩dp,最短Hamilton路径 属于 集合状态压缩dp 1064. 小国王(棋盘式/基于连通性) 这种棋盘放置类问题,在没有事先知 ...

最新文章

  1. 语言主程序和子程序的写法_汇编语言程序设计第三篇——汇编程序结构
  2. boost::lower_bound相关的测试程序
  3. boost::hana::arg用法的测试程序
  4. java io内存泄露_java内存泄露和OutOfMemory
  5. Openresty (nginx + lua)
  6. [(IBUF driven by I/O terminal ) is unplaced after IO placer?
  7. 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构
  8. yii2的Console定时任务创建
  9. Flink - allowedLateness
  10. OpenShift 4 - 应急响应Demo应用(AMQ+Knative+Quay+BPM+BDM+SSO)
  11. C# —— IEnumerable和状态机
  12. php文字下划线,css如何设置字体下划线
  13. php 环境搭建 -- 命令配置
  14. Image.FormFile引起的若干问题
  15. win10系统如何安装SQL服务器,win10系统下怎样安装SQL2005 EXPRESS版|SQL2005 EXPRESS版的安装方法...
  16. so easy 的 Vue3.0自定义指令(也搜一贼)
  17. python练习_邮件定时收取处理附件后发送结果
  18. 推荐系统遇上深度学习(八十七)-[阿里]基于搜索的用户终身行为序列建模
  19. 01改变世界:机械之美——机械时期的计算设备
  20. 小程序导航图标_商场寻店不迷路 业内首个小程序AR导航上线

热门文章

  1. python pytest allure_python测试框架pytest和测试报告allure的联合使用-----测试套件
  2. 同时画多个饼图_手帐术 | 这个神奇饼图里,藏着时间管理的小秘诀
  3. 查询2021抚顺高考成绩,2021年抚顺高考状元是谁分数多少分,历年抚顺高考状元名单...
  4. 算法设计与分析——分支限界法——n皇后问题
  5. leetcode474. 一和零
  6. leetcode746. 使用最小花费爬楼梯
  7. 两数、三数、四数之和相关题目(Leetcode题解-Python语言)
  8. 高等数学下-赵立军-北京大学出版社-题解-练习12.4
  9. [C++STL]stack容器用法介绍
  10. [Java网络编程]UDP通信程序练习