动态规划(算法竞赛、蓝桥杯)--状态压缩DP蒙德里安的梦想

1、B站视频链接:E31 状态压缩DP 蒙德里安的梦想_哔哩哔哩_bilibili

#include <bits/stdc++.h> 
using namespace std;
const int N=12,M=1<<N;
bool st[N];//st[i]存储合并列的状态i是否合法  
long long f[N][M];//f[i][j]表示摆放第i列,状态为j时的方案数 int main(){int n,m;while(cin>>n>>m,n||m){//预处理:判断合并列的状态i是否合法 //合并列即两列状态合并之意,对应后面的st[j|k]      //如果合并列的某行是1表示横放,是0表示竖放 //如果合并列不存在连续的奇数个0,即为合法状态 for(int i=0;i<1<<n;i++){//枚举状态 st[i]=true;int cnt=0; //记录合并列中连续0的个数 for(int j=0;j<n;j++){//n为行数,即状态的位数 if(i>>j&1){//如果i是1 if(cnt&1){//如果连续0的个数是奇数  st[i]=false;break;}}else{cnt++;//如果是0,记录0的个数 }}if(cnt&1)st[i]=false;//处理高位0的个数 }memset(f,0,sizeof f);f[0][0]=1;for(int i=1;i<=m;i++){//阶段:枚举列 for(int j=0;j<1<<n;j++){//状态:枚举第i列的状态 for(int k=0;k<1<<n;k++){//状态:枚举第i-1列的状态 if((j&k)==0&&st[j|k]){//两列状态兼容:不出现重叠的1,不出现连续的奇数个0 f[i][j]+=f[i-1][k];}}}}    printf("%lld\n",f[m][0]);//第m列不横放即答案}return 0;}

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

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

相关文章

java-ssm-jsp-大学社团管理系统

java-ssm-jsp-大学社团管理系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

代码随想录算法训练营第21天

455. 分发饼干 class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:g.sort(reverseTrue)s.sort(reverseTrue)j 0for i in range(len(g)):if j < len(s)-1 and s[j] >g[i]:j 1return j 376. 摆动序列 class Solution:def wiggleMax…

CMake Error: Cannot open file for write

CMake Error: : System Error: Permission denied CMake Error: Directory Information file not found CMake Error: : System Error: Permission denied 当前用户没有足够的权限来写入指定的文件或目录在Linux系统中&#xff0c;文件或目录的权限由三组用户&#xff08;所…

HA集群脑裂现象的处理-一起学习吧之架构

HA集群在提高系统可用性和数据安全性方面具有显著优势&#xff0c;但同时也需要投入更多的成本和资源&#xff0c;并面临一定的复杂性和挑战。其中&#xff0c;脑裂现象对HA集群产生的影响如果未妥善处理&#xff0c;将带来灾难性后果。 一、脑裂现象 HA&#xff08;High Ava…

PSINS工具箱笔记——函数定义

绘图函数&#xff1a; 时间进度条&#xff1a; timebar&#xff08;用起来简单&#xff09; 姿态转换&#xff1a; 欧拉角、姿态矩阵、等效旋转矩阵、姿态四元数、运载火箭使用的欧拉角之间的转换。 轨迹生成&#xff1a; seg trjsegment(seg, segtype, lasting, w, a, var…

在C++中使用volatile关键字

基本概念 volatile 关键字在C中用于告诉编译器&#xff0c;一个变量的值可能以程序未明确指定的方式被改变。使用 volatile 声明的变量&#xff0c;编译器在每次访问时都会重新从其所在的内存位置读取其值&#xff0c;而不是使用保存在寄存器中的副本。这对于多线程程序中共享…

centos上部署k8s

环境准备 四台Linux服务器 主机名 IP 角色 k8s-master-94 192.168.0.94 master k8s-node1-95 192.168.0.95 node1 k8s-node2-96 192.168.0.96 node2 habor 192.168.0.77 镜像仓库 三台机器均执行以下命令&#xff1a; 查看centos版本 [rootlocalhost Work]# cat /…

武汉灰京文化:游戏市场推广与用户增长的成功典范

作为游戏行业的明星企业&#xff0c;武汉灰京文化在市场推广和用户增长方面的成功经验备受瞩目。他们以创造性和独特性的市场营销策略&#xff0c;成功吸引了大量用户。这不仅提高了其游戏的知名度&#xff0c;还为公司带来了持续的增长。这一成功模式不仅对公司自身有益&#…

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍 PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集&#xff0c;提供了丰富的功能和模型&#xff0c;包括但不限于以下几种&#xff1a; 1.文本相关功能&#xff1a;包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。…

政安晨【示例演绎虚拟世界开发】(六):从制作一个对战小游戏开始(Cocos Creator 《击败老大》)(第三段)

在上一篇文章中&#xff0c;我们已经将游戏的场景基本搭建完毕&#xff0c;接下来我们就可以为游戏编写代码并实现相关的核心逻辑了。 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: AI虚拟世界大讲堂 希望政安晨的博客能够对您有所裨益&a…

基于NB-IoT的西红柿基地温湿度监测系统

总体硬件架构 在西红柿种植园内&#xff0c;我们为每株作物分配RFID标签&#xff0c;以便在每次照顾作物后记录其生长状况、施肥和灌溉等信息。这些数据将上传至云端&#xff0c;便于用户在线实时监控作物生长情况。 为了确保温湿度的精确控制&#xff0c;我们在作物棚内每隔3米…

appium2的一些配置

appium-desktop不再维护之后&#xff0c;需要使用appium2。 1、安装appium2 命令行输入npm i -g appium。安装之后输入appium或者appium-server即可启动appium 2、安装安卓/ios的驱动 安卓&#xff1a;appium driver install uiautomator2 iOS&#xff1a;appium driver i…

算法沉淀——贪心算法一(leetcode真题剖析)

算法沉淀——贪心算法一 01.柠檬水找零02.将数组和减半的最少操作次数03.最大数04.摆动序列 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种基于贪心策略的优化算法&#xff0c;它通常用于求解最优化问题&#xff0c;每一步都选择当前状态下的最优解&#xff0c;以期…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TapGesture)

支持单击、双击和多次点击事件的识别。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 接口 TapGesture(value?: { count?: number, fingers?: number }) 参数&#xff1a; 参数名称参数类型必填参…

sql多表运用 12.3

肖SIR__数据库之多表运用__12.3 数据库之多表运用 CREATE table dept(dept1 VARCHAR(6),dept_name VARCHAR(20)) default charsetutf8; INSERT into dept VALUES (101,财务); INSERT into dept VALUES (102,销售); INSERT into dept VALUES (103,IT技术); INSERT into dep…

前端工具网站合集(持续更新)

综合类网站 那些免费的砖 统计推荐免费工具网站 那些免费的砖 - 优雅地白嫖各种免费资源 (thosefree.com)https://www.thosefree.com/ CSS样式网站 毒蘑菇-配色 CSS 配色&#xff0c;阴影网站 一个好用的配色网站! 毒蘑菇 - 配色 (dumogu.top)https://color.dumogu.top/ …

如何使用Minitab计算MSA数据

1.1 步骤一 将数据复制进Minitab数据区 1.2 步骤二 按图示选择 1.3 步骤三 按图示选择&#xff0c;测量数据那列根据自己填入的数据而定 1.4 数据 评价中的重要指标为可区分类别数&#xff08;通常需大于10&#xff09;&#xff0c;合计量具R&R&#xff08;通常需小于10&am…

alibabacloud学习笔记07(小滴课堂)

讲解Sentinel自定义异常降级-新旧版本差异 讲解新版Sentinel自定义异常数据开发实战 如果我们都使用原生的报错&#xff0c;我们就无法得到具体的报错信息。 所以我们要自定义异常返回的数据提示&#xff1a; 实现BlockExceptionHandler并且重写handle方法&#xff1a; 使用F…

Jupyter如何开启Debug调试功能

由于需要对算子做远程调试功能&#xff0c;需要在jupyter中开启远程断点调试功能&#xff0c;特此记录。 本文写作时用到的系统是Ubuntu22&#xff0c;Python的版本是3.8. 首先&#xff0c;创建虚拟环境。 python -m venv venv source venv/bin/activate接着&#xff0c;安装…

C++从零开始的打怪升级之路(day44)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于二叉搜索树的知识点 1.二叉搜索树概念 二叉搜…