当前位置: 首页 > news >正文

题解:AcWing 291 蒙德里安的梦想

【题目来源】

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

【题目描述】

求把 \(N\times M\) 的棋盘分割成若干个 \(1\times 2\) 的长方形,有多少种方案。

例如当 \(N=2,M=4\) 时,共有 \(5\) 种方案。当 \(N=2,M=3\) 时,共有 \(3\) 种方案。

如下图所示:

image

【输入】

输入包含多组测试用例。

每组测试用例占一行,包含两个整数 \(N\)\(M\)

当输入用例 \(N=0,M=0\) 时,表示输入终止,且该用例无需处理。

【输出】

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

【输入样例】

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

【解题思路】

image

image

image

image

image

image

image

image

【算法标签】

《AcWing 291 蒙德里安的梦想》 #动态规划# #状态压缩DP#

【代码详解】

!代码技巧#:判断连续0是否为偶数

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 15;
int n, m;  //n行,m列数,编号从0开始,每一列状态有n位二进制数
//f[i][j]:前i-1列横放已好,第i列的伸出状态为j(不含在i列横放状态),各种来源集合
LL f[N][1<<N];  //f[N][2^N]
//st[j]:状态二进制数j 若0是连续偶数个则为true,合法,若存在连续奇数个0则为false,状态非法
bool st[1<<N];  //st[2^N]
int main()
{while (cin >> n >> m) {if (n==0 && m==0) break;memset(f, 0, sizeof(f));  //初始化方案数为0for (int i=0; i<1<<n; i++) {  //预处理状态i,若存在连续奇数个数0则为falseint cnt = 0;  //空单元格数量,即二进制i中含连续0数量st[i] = true;for (int j=0; j<n; j++)  if (i>>j & 1) {  // 二进制数i右移j为再与1做与运算。是1if (cnt%2==1) {st[i] = false;  //统计连续0的数量,是奇数break;}cnt = 0;  //统计下一个连续的0} else cnt++;if (cnt%2==1) st[i] = false;  //最后一次还要特判一下}f[0][0] = 1;  //边界:因为第0列不会有-1列的突出出俩,0列状态全是0,有1个方案for (int i=1; i<=m; i++)  //枚举所有列for (int j=0; j< 1<<n; j++)  //枚举i列状态j,选出由i-1列横放产生的状态jfor (int k=0; k< 1<<n; k++)  //枚举i-1的状态if ((j&k)==0 && st[j|k])  //条件前i-1列横放有效f[i][j] += f[i-1][k];//结果:前m-1列(所有列)横放有效,没有向m列伸出(状态为0)cout << f[m][0] << endl;}return 0;
}

【运行结果】

1 2
1
1 3
0
1 4 
1
2 2
2
2 3
3
2 4
5
2 11
144
4 11
51205
0 0
http://www.jsqmd.com/news/413853/

相关文章:

  • 2026年值得关注的除雪设备定制生产商一览,小型履带底盘/液压除雪设备/自卸履带运输车,除雪设备批发厂家口碑排行 - 品牌推荐师
  • 2026年行政法律服务推荐:周雪林律师团队,专注行政赔偿/强制/拘留/复议/诉讼等案件代理 - 品牌推荐官
  • 2026兰州中考高考冲刺班推荐:兰州领航学校,全科冲刺班助力学子提分升学 - 品牌推荐官
  • 6亿数据秒级查询,ClickHouse太快了!
  • 2026年上海排行前列的宠物口腔医生排行,宠物口腔/显微牙科/狗狗拔牙/猫咪口腔护理/宠物口腔科,宠物口腔医生推荐排行 - 品牌推荐师
  • 维生素D3哪个牌子效果好?国家认可十大维生素D3品牌,圣舒养长期养护更放心 - 博客万
  • 代码对比工具,我就用这7个!
  • 2026年串联谐振试验装置推荐:武汉木森电气全系产品,适配电力/电缆/发电机耐压测试 - 品牌推荐官
  • 2026年一体化/智慧/智能档案室建设推荐:河北盛美智能集团,设备改造十防全系方案 - 品牌推荐官
  • Prometheus CPU 使用率飙升问题排查思路
  • Python 对象的“手术刀”:深入解析 `delattr` 与动态属性管理的艺术
  • 2026智慧公交系统厂家推荐:厦门磁北科技,公交酒精检测/智能调度/电子路牌等设备全覆盖 - 品牌推荐官
  • 7个技巧精通Visual C++运行库管理工具:从入门到系统维护专家
  • 4个维度构建VMware macOS开发环境:跨平台开发者实践指南
  • 2026年2月最新麻辣零食TOP5推荐:露营/追剧/下午茶解馋之选 - 十大品牌榜
  • 1.6 提示工程、微调与插件:三种优化路径选型指南
  • 2026年工业级草酸厂家推荐:青州市科缔环保科技,99.6%高纯度草酸/袋装草酸专业供应 - 品牌推荐官
  • 2.1 OpenAI API核心概念:模型、Token、温度参数完全解读
  • 2026年巴斯夫防冻液全系推荐:桔皋化工有限公司供应G65/G30/EV100-2等型号 - 品牌推荐官
  • 2026年济南私立高中推荐:寄宿高中/靠谱私立高中/优质民办高中优选济南世纪英华实验学校 - 品牌推荐官
  • 分布式系统中强一致性与高性能均衡原子钟与TSO机制深度剖析
  • Python 打包的“封神”之路:告别混乱,拥抱 Wheel 的优雅与高效
  • 2026年商用/酒店/学校/食堂/中央厨房设备推荐:广东杰冠厨房设备制造有限公司全系解决方案 - 品牌推荐官
  • [游戏翻译工具] 突破语言壁垒:XUnity.AutoTranslator重构游戏本地化体验
  • 收藏必备!CTF解题宝典:系统化思维框架+实战技巧模板,小白直接套用拿分!
  • 2026 年国内刀刮布防雨布三防布篷布厂家推荐 西北区域优选品牌实力解析 - 深度智识库
  • 基于python hadoop spark旅游景点评论数据分析系统 LDA主题分析 NLP情感分析
  • 如何设计支持快速交付的技术中台?——从DDD视角重新思考中台建设
  • 2026年磨床厂家推荐:无锡市琦明机床有限公司,全自动/立式/高精度内圆磨床全系供应 - 品牌推荐官
  • 2026年舞台移动道具厂家推荐:上海予感文化传播,升降讲台/可移动沙发/创意启动道具全系供应 - 品牌推荐官