蓝桥杯每日一题2023.9.25
4406. 积木画 - AcWing题库
题目描述

分析
在完成此问题前可以先引入一个新的问题
291. 蒙德里安的梦想 - AcWing题库

我们发现16的二进制是 10000
15的二进制是1111
故刚好我们可以从0枚举到1 << n(相当于二的n次方的二进制表示)


注:奇数个0是非法的
此处i的变化记录的是每一个状态,
这里的i每次>>j 是来记录i这个状态中0和1的个数,如果在这个过程中i是1就要看前面记录的0的个数,如果0的个数是奇数,那就会是1101这种类似状态故一定不符合事实

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 12, M = 1 << N;
ll n, m, f[N][M];
bool st[N];
int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);while(cin >> n >> m){if(n == 0 && m == 0)break;for(int i = 0; i < 1 << n; i ++){st[i] = true;int cnt = 0;for(int j = 0; j < n; j ++){if(i >> j & 1){if(cnt & 1){st[i] = false;break;}}else cnt ++;}if(cnt & 1)st[i] = false;//eg.0100}memset(f, 0, sizeof f);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] << '\n';}return 0;
}
题目分析
发现一共有16种转移状态
DP[i][j]表示已经操作完i - 1列且第i列的状态为j的所有方案的集合

#include<bits/stdc++.h>
using namespace std;
const int N = 1e7 + 10;
const int mod = 1000000007;int g[4][4] =
{{1, 1, 1, 1},{0, 0, 1, 1},{0, 1, 0, 1},{1, 0, 0, 0},
};
int dp[N][4];
int main()
{int n;cin >> n;dp[1][0] = 1;for(int i = 1; i <= n; i ++)//枚举列数 {for(int j = 0; j < 4; j ++)//从j状态转移到k状态 {for(int k = 0; k < 4; k ++)//表示向k状态转移 {dp[i + 1][k] = (dp[i + 1][k] + g[j][k] * dp[i][j]) % mod;}}}cout << dp[n + 1][0];return 0;
}
列举此位置的所有状态(j)每次乘上可以转化为的所有状态(k),然后不断将此位置的所有状态相加得到此位置的所有状态,最后输出最后一列(n)且下一列所有状态为0,也就是没有伸出的一列
相关文章:
蓝桥杯每日一题2023.9.25
4406. 积木画 - AcWing题库 题目描述 分析 在完成此问题前可以先引入一个新的问题 291. 蒙德里安的梦想 - AcWing题库 我们发现16的二进制是 10000 15的二进制是1111 故刚好我们可以从0枚举到1 << n(相当于二的n次方的二进制表示) 注:奇数个0…...
前端面试的话术集锦第 20 篇博文——高频考点(输入 URL 到页面渲染的整个流程)
这是记录前端面试的话术集锦第二十篇博文——高频考点(输入 URL 到页面渲染的整个流程),我会不断更新该博文。❗❗❗ 借用这道经典面试题,将之前学习到的浏览器以及网络几章节的知识联系起来。 首先是DNS查询,如果这一步做了智能DNS解析的话,会提供访问速度最快的IP地址…...
Android Jetpack Compose之确定重组范围并优化重组
目录 1.概述2.确定Composable重组的范围3.优化重组的性能3.1 Composable 位置索引3.2 通过Key添加索引信息3.3 使用注解Stable优化重组 1.概述 前面的文章提到Compose的重组是智能的,Composable函数在进行重组时会尽可能的跳过不必要的重组,只对需要变化…...
【JDK 8-集合框架进阶】6.1 parallelStream 并行流
一、parallelStream 并行流 1.1 串行 和 并行的区别 > 执行结果 二、问题 2.1 paralleStream 并行是否一定比 Stream 串行快? 2.2 是否可以都用并行? > 报错 三、实战 > 执行结果 四、总结 一、parallelStream 并行流 多线程并发处理ÿ…...
C语言中结构体,枚举,联合相关介绍
本次重点: 1、结构体 : (1)结构体类型的声明 (2)结构的自引用 (3)结构体变量的定义和初始化 (4)结构体内存对齐 (5)结构体传参 …...
【干货】GNSS连续运行基准站网
文章目录 01 概述02 基准站建设03 数据中心04 数据通信网络 01 概述 1. 基准站网的组成 卫星连续运行基准站网(Continuously Operating Reference Stations,缩写 CORS)是由若干连续运行基准站及数据中心、数据通信网络组成的࿰…...
如何使用iPhone15在办公室观看家里电脑上的4k电影,实现公网访问本地群晖!
如何使用iPhone15在办公室观看家里电脑上的4k电影? 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影?1.使用环境要求:2.下载群晖videostation:3.公网访问本地群晖videostation中的电影:4.公网条件下使用电脑…...
LeetCode之26.删除有序数组中的重复项和80.删除有序数组中的重复项II(C++)
文章目录 0 引言1 删除有序数组中的重复项1.1 解题方法1.2 C代码 2 删除有序数组中的重复项II2.1 解题方法2.2 C代码 0 引言 本文主要记录如何解决LeetCode中数组和字符串类别中的26.删除有序数组中的重复项(简单)及80.删除有序数组中的重复项II &#…...
linux驱动之input子系统简述
文章目录 一、什么是input子系统二、内核代码三、代码分析 一、什么是input子系统 Input驱动程序是linux输入设备的驱动程序,我们最常见的就按键,触摸,插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标…...
嵌入式裸机架构的探索与崩塌
为什么会想着探索下嵌入式裸机的架构呢?是因为最近写了一个项目,项目开发接近尾声时,发现了一些问题: 1、项目中,驱动层和应用层掺杂在一起,虽然大部分是应用层调用驱动层,但是也存在驱动层调用…...
MySQL高级语句(第二部分)
MySQL高级语句(第二部分)一、视图表 create view1、视图表概述2、视图表能否修改?(面试题)3、基本语法3.1 创建3.2 查看3.3 删除 4、通过视图表求无交集值 二、case语句三、空值(null) 和 无值(’ ) 的区别四、正则表达式五、存储过程1、简介…...
HTML计时事件(JavaScript)网页电子钟+网页计时器
setTimeout("函数","未来指定毫秒后调用函数"); clearTimeout(setTimeout("函数","未来指定毫秒后调用函数")); <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title>…...
使用群晖实现Videostation电影的大容量存储及分享教程
文章目录 1.使用环境要求2.制作视频分享链接3.制作永久固定视频分享链接 李哥和他的女朋友是一对甜蜜的情侣,但不幸的是,由于工作原因,他们目前分隔两地,无法常常亲密相伴。 这个距离让李哥特别怀念和女朋友一起在电影院观看电影的…...
后端大厂面试-15道题
1. 说说计算机存储结构 计算机存储结构通常包括这几个层次: 主存储器(Main Memory):也称为内存(RAM,Random Access Memory),主要用于存储当前正在执行的程序和数据。它是计算机中最…...
C++: 冒泡排序(Bubble Sort)
假设你有一列由数字组成的玻璃珠,这些珠子的重量不同,你希望将它们按照重量从轻到重排列。你会这样做: 从左到右,比较相邻的两颗珠子的重量。如果左边的珠子比右边的珠子重,就交换它们的位置。然后,继续向…...
跨域的解决方案
文章目录 概念一、什么是跨域问题二、为什么会发生跨域问题三、跨域解决方案1、JSONP2、添加响应头3、Spring注解CrossOrigin4、配置文件(常用)5、nginx跨域 概念 一、什么是跨域问题 前端调用的后端接口不属于同一个域(域名或端口不同&…...
如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型?
如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型? Java是一种静态类型的编程语言,这意味着我们需要在编译时为变量指定具体的类型。但是ÿ…...
9.20华为机试-后端
1、丢失报文的位置 某通信系统持续向外发送报文,使用数组 nums 保存 n个最近发送的报文,用于在报文未达到对端的情况下重发。报文使用序号 sn 表示,序号 sn 按照报文发送顺序从小到大排序,相邻报文 sn 不完全连续且有可能相同。报…...
LC926. 将字符串翻转到单调递增(JAVA - 动态规划)
将字符串翻转到单调递增 题目描述动态规划 题目描述 难度 - 中等 LC926. 将字符串翻转到单调递增(JAVA - 动态规划) 如果一个二进制字符串,是以一些 0(可能没有 0)后面跟着一些 1(也可能没有 1)的形式组成的࿰…...
【高阶数据结构】哈希的应用 {位图;std::bitset;位图的应用;布隆过滤器;布隆过滤器的应用}
一、位图 1.1 位图概念 面试题 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】 遍历查找:内存中无法存放40亿个整数(约占内存15-16G);时间复杂…...
FPGA实战:手把手教你用Verilog给NAND Flash数据上把“安全锁”(附完整ECC代码)
FPGA实战:用Verilog为NAND Flash打造硬件级ECC防护系统 1. 为什么你的NAND Flash需要硬件ECC? NAND Flash存储芯片在工业控制、物联网终端和边缘计算设备中扮演着关键角色,但它的物理特性导致数据可靠性存在先天缺陷。想象一下,当…...
从make clean到build.prop:揭秘Android系统属性生成的完整链条
从make clean到build.prop:揭秘Android系统属性生成的完整链条 当你通过adb shell getprop ro.build.display.id查看设备版本号时,是否好奇过这个字符串背后的生成逻辑?在Android编译系统中,从Makefile执行到最终生成build.prop文…...
【卷积神经网络作业实现人脸的关键点定位功能】
下面是完成这道题目的代码:import os import cv2 import numpy as np import pandas as pd import torch import torch.nn as nn from torch.utils.data import Dataset,DataLoader from torchvision import transforms import matplotlib.pyplot as plt1. 数据集定…...
别再只用外部中断了!用STM32F103的TIM2输入捕获,实现更稳定的旋转编码器读数
旋转编码器信号捕获:STM32F103定时器输入捕获模式实战解析 旋转编码器作为工业控制和消费电子中的核心位置传感器,其信号处理的稳定性直接影响系统性能。许多开发者习惯采用外部中断方式读取AB相脉冲,但在高速旋转或存在机械抖动的场景下&…...
Mbed OS platform_drivers:嵌入式HAL驱动核心解析
1. 项目概述platform_drivers是 Arm Mbed OS 生态中一组经过严格验证、面向硬件抽象层(HAL)的平台级设备驱动集合,其核心定位并非提供通用外设封装,而是为 Mbed OS 内核及中间件组件提供可移植、可测试、符合 RTOS 语义的底层硬件…...
TMAH显影液全场景应用:离子交换树脂在制备-使用-回收中的pH控制策略
为什么显影液的pH值如此重要?在芯片制造的精密世界里,光刻工艺就像是在头发丝上雕刻电路图案。而显影液,就是这场"雕刻"中的关键刻刀。目前主流的正性光刻胶显影液以四甲基氢氧化铵(TMAH)为主要成分…...
2026全年求职时间线|应届生必看,错过可能再等一年
关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集如果你是2026届、2027届毕业生,这篇文章建议收藏转发。应届生身份只有一次,用好了是红利,用错了可能错过一整年机会。都说今年工作难找,那我们…...
xiaomusic启动故障终极解决指南:设备认证配置与开源智能家居集成方案
xiaomusic启动故障终极解决指南:设备认证配置与开源智能家居集成方案 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 问题定位:识别xiaomusi…...
Go Interface 与类型断言的实践
Go语言中的Interface与类型断言是提升代码灵活性的重要工具。Interface定义了方法集合,允许不同类型实现相同行为,而类型断言则能在运行时检查接口值的具体类型。本文将深入探讨其核心实践技巧,帮助开发者编写更优雅的Go代码。接口定义与实现…...
基于Python的可穿戴设备的人机交互设计与实现
前言随着科技的进步发展,人们对生活水平提高有了一定的要求,穿戴设备得到了一定的普及与发展,人与设备之间交互的快捷性和智能化成为了提高用户体验感的关键所在。 对穿戴设备与人之间的交互的需求进行调查,分析用户在使用过程中存…...
