AcWing算法基础课笔记——状态压缩DP:蒙德里安的梦想

状态压缩DP

状态是整数,但把它看成二进制数,二进制中每一位是0或1表示不同的情况。

蒙德里安的梦想

291. 蒙德里安的梦想 - AcWing题库

题目

求把 N×M𝑁×𝑀 的棋盘分割成若干个 1×21×2 的长方形,有多少种方案。

例如当 𝑁=2,𝑀=4 时,共有 55 种方案。当𝑁=2,𝑀=3 时,共有 3 种方案。

如下图所示:

请添加图片描述

输入格式

输入包含多组测试用例。

每组测试用例占一行,包含两个整数 𝑁 和 𝑀。

当输入用例𝑁=0,𝑀=0 时,表示输入终止,且该用例无需处理。

输出格式

每个测试用例输出一个结果,每个结果占一行。

数据范围

1≤𝑁,𝑀≤11

输入样例:
1 2
1 3
1 4
2 2
2 3
2 4
2 11
4 11
0 0
输出样例:
1
0
1
2
3
5
144
51205

代码

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 12, M = 1 << N;int n, m;
long long f[N][M];
bool st[M];int main() {int n, m;while(cin >> n >> m, n || m) {memset(f, 0, sizeof f);//枚举所有状态,看是否存在连续奇数个0 for(int i = 0; i < 1 << n; i ++ ) {st[i] = true;int cnt = 0;  //表示当前这段连续0的个数for(int j = 0; j < n; j ++ ) {if(i >> j & 1) {if(cnt & 1) st[i] = false;cnt = 0;}else cnt ++;}if(cnt & 1) st[i] = false;  //最后一段0的个数 }f[0][0] = 1;for(int i = 1; i <= m; i ++ ) {for(int j = 0; j < 1 << n; j ++ ) {for(int k = 0; k < 1 << n; k ++ ) {if((j & k) == 0 && st[j | k]) {f[i][j] += f[i - 1][k];}}}}cout << f[m][0] << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron-builder 打包过慢解决

报错内容如下 > 6-241.0.0 build > electron-builder • electron-builder version24.13.3 os10.0.22631 • loaded configuration filepackage.json ("build" field) • writing effective config filedist\builder-effective-config.yaml • pack…

地下管线管网三维建模系统MagicPipe3D

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进&#xff0c;构建地下管网三维模型与地上融合的数字孪生场景&#xff0c;对于提升智慧城市管理至关重要&#xff01;针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…

清科ZF引导基金数据(1990-2023年)

清科ZF引导基金数据&#xff0c;参考经济学家吴超鹏和严泽浩在《经济研究》2023年的研究&#xff0c;通过清科私募通数据库&#xff0c;获取ZF引导基金的管理机构信息。数据涵盖了ZF引导基金的关键信息&#xff0c;如基金名称、管理机构详情、所属层级、发展阶段、地域分布、初…

java学习 - Redis五大数据类型

redis通用命令 命令说明时间复杂度type key判断key的数据类型O(1)keys [pattern]获取数据库中所有符合pattern的keyO(n)dbsize获取数据库的key的数量O(1)exists key判断是否存在key;存在返回1&#xff0c;不存在返回0O(1)del key [key…]删除key;返回删除个数O(1)expire key s…

Batch学习:开启高效学习之旅

Batch学习&#xff1a;开启高效学习之旅 Batch学习是一种学习方法&#xff0c;它将学习内容划分为多个批次进行学习。这种方法有助于学生更好地掌握知识&#xff0c;提高学习效果。本文将详细介绍Batch学习的概念、方法和优势&#xff0c;并探讨如何有效地实施Batch学习。 一…

数据集MNIST手写体识别 pyqt5+Pytorch/TensorFlow

GitHub - LINHYYY/Real-time-handwritten-digit-recognition: VGG16和PyQt5的实时手写数字识别/Real-time handwritten digit recognition for VGG16 and PyQt5 pyqt5Pytorch内容已进行开源&#xff0c;链接如上&#xff0c;请遵守开源协议维护开源环境&#xff0c;如果觉得内…

redis集群简单介绍及其搭建过程

Redis集群 1、哨兵模式 哨兵可以有多个&#xff0c;从服务器也可以有多个&#xff0c;从服务器也可以有多个&#xff0c;在Redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会实现主从切换&#x…

百度大模型安全荣获2024世界智能产业博览会“Find智能科技创新应用典型案例”

6月20日&#xff0c;2024世界智能产业博览会在天津开幕。会议聚焦人工智能、智能网联汽车、智能制造等年度热点议题&#xff0c;由世界智能产业博览会组委会指导&#xff0c;世界智能产业博览会组委会秘书处、中国新一代人工智能战略发展研究院、中国软件行业协会、中国网络空间…

极客之夜 | XCTF国际网络攻防联赛十周年庆典圆满落幕

在数字化浪潮的推动下&#xff0c;网络安全已成为全球关注的焦点。十年磨一剑&#xff0c;XCTF国际网络攻防联赛以其卓越的赛事品质和深远的影响力&#xff0c;成为网络安全领域的一面旗帜。极客之夜&#xff0c;我们齐聚一堂&#xff0c;共同庆祝XCTF的十年辉煌&#xff0c;展…

sheng的学习笔记-AI-高斯混合模型(GMM)

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客需要学习前置知识&#xff1a; 聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 EM算法&#xff0c;可参考 sheng的学习笔记-AI-EM算法-CSDN博客 贝…

OVS:网桥的状态:fail_mode模式

目录 1.创建一个普通的ovs网桥不做任何配置 2.检测fail_mode值&#xff0c;默认为空 3.创建netns并配置sto网桥的两个普通端口并配置IP信息 4.默认情况下的两个端口下挂两个虚拟机v3,v4天然通信-ping-ok 5.修改网桥的fail_mode为standalone,原来的通信没有影响 6.修改了…

okcc呼叫中心系统通话声音小有哪几种处理办法?

处理OKCC呼叫中心系统通话声音过小的几种方法包括&#xff1a; 第一种&#xff1a; 1、IP话机&#xff1a;通过话机上的音量调节按钮来进行调节。 2、模拟话机&#xff1a;修改语音网关上的增益来实现。 “ 往IP增益”表示电话呼入的声音调节&#xff0c;主要针对内部分…

伸缩盒模型,flex布局

目录 1、伸缩容器、伸缩项目 2、主轴方向(flex-direction) 3、主轴换行方式(flex-wrap) 4、flex-flow 5、主轴对齐方式(justify-content) 6、侧轴对齐方式_一行(align-items) 7、侧轴对齐方式_多行(align-content) 8、元素水平垂直居中 9、项目在主轴的基准长度(flex-b…

运维.Linux下执行定时任务(中:Cron的常用替代方案)

运维系列 Linux下执行定时任务&#xff08;中&#xff1a;Cron的常用替代方案&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAd…

CMA软件测试报告对企业和用户有什么好处?

CMA是中国计量认证的简称&#xff0c;由省级以上人民政府计量行政部门对检测机构的检测能力及可靠性进行的一种全面的认证及评价&#xff0c;认证对象是所有对社会出具公正数据的产品质量监督检验机构及其它各类实验室&#xff0c;是需要强制性认证的资质。取得该资质认证的&am…

【golang学习之旅】复杂数据类型——指针 函数

系列文章 【golang学习之旅】使用VScode安装配置Go开发环境 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】深入理解字符串string数据类型 【golang学习之旅】go mod tidy 【golang学习之旅】记录一次 p…

spring02

bean中公共属性抽取出来&#xff0c;统一配置 <bean class"com.cj.Animal" id"animal"><property name"category" value"犬科"/></bean><bean class"com.cj.Dog" id"dog1" parent"anim…

这就是人性的丑恶,很残酷但很现实

这些年我喜欢跟垃圾撕破脸&#xff0c;包括垃圾亲戚&#xff0c;我是不会跟你讲什么感情的&#xff0c;该滚蛋就滚蛋。我最不喜欢听什么今日留一线&#xff0c;日后好相见。 之前我还不懂事的时候&#xff0c;就有那种亲戚叫我帮他介绍工作&#xff0c;我照做了。 结果&#xf…

Android 11 ,默认授予预置应用/APK 需要的权限,解决permission denied for window type 2003 问题。

写这篇文章的原因是解决了一个APP闪退的问题&#xff0c;闪退的原因是插拔U盘时&#xff0c;注册的广播接收者接收到广播需要弹出一个Dialog询问是否需要打开U盘&#xff0c;这个Dialog设置的是系统级别悬浮窗&#xff0c;没有这个权限&#xff0c;报错导致闪退&#xff0c;下面…

【SpringBoot文件压缩下载】文件夹压缩下载

1. Controller 使用hutool的ZipUtil根据文件夹路径打包成File对象然后调用自定义的FileResponseUtil进行单线程数据传输 import cn.hutool.core.date.DateUtil; import com.github.xiaoymin.knife4j.annotations.ApiSort; import im.gy.zfile.core.util.FileResponseUtil; im…