蓝桥杯_B组_省赛_2022(用作博主自己学习)
| 题目 | 链接 | 算法 |
|---|---|---|
| 1 | 1.九进制转十进制 - 蓝桥云课 | 进制转换 |
| 2 | 1.顺子日期 - 蓝桥云课 | 时间与日期 |
| 3 | 1.刷题统计 - 蓝桥云课 | 时间与日期 |
| 4 | 1.修剪灌木 - 蓝桥云课 | 思维 |
| 5 | 1.X 进制减法 - 蓝桥云课 | 贪心 |
| 6 | 1.统计子矩阵 - 蓝桥云课 | 二维前缀和 |
| 7 | 1.积木画 - 蓝桥云课 | 动态规划 |
| 8 | 2.扫雷 - 蓝桥云课 | DFS / BFS |
| 9 | 2.李白打酒加强版 - 蓝桥云课 | 动态规划 / 记忆化搜索 |
| 10 | 1.砍竹子 - 蓝桥云课 | 杂题 |
1. 九进制转十进制(简单题)
#include <iostream>
using namespace std;int main(){cout << 2 + 2 * 9 + 2 * 9 * 9 * 9;return 0;
}
2. 顺子日期(简单题)
#include <iostream>
using namespace std;int deadline[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int main(){int date[4];int count = 0;for(int m = 1; m <= 12; m ++){int daysize = deadline[m];for(int d = 1; d <= daysize; d ++){date[0] = m / 10;date[1] = m % 10;date[2] = d / 10;date[3] = d % 10;if((date[0] + 1 == date[1] && date[1] == date[2] - 1) || (date[1] + 1 == date[2] && date[2] == date[3] - 1) )count ++;}}cout << count;return 0;
}
3. 刷题统计(简单题)
#include <iostream>
using namespace std;int main(){long long a, b, n; cin >> a >> b >> n;long long day = 0, week = 0;week = n / (5 * a + 2 * b);day = week * 7;n -= week * (5 * a + 2 * b);for(int i = 1; n > 0; i ++){int num;if(i >= 6) num = b;else num = a;n -= num;day ++;}cout << day;return 0;
}
4. 修剪灌木(找规律)
#include <iostream>
using namespace std;int trees[10010];int main(){int n; cin >> n;int first = 2 * n - 2;int tmp = first;int left = 1, right = n;while(left <= right){trees[left] = trees[right] = tmp;tmp -= 2;left ++;right --;}for(int i = 1; i <= n; i ++) cout << trees[i] << endl;return 0;
}
5. X 进制减法
#include <bits/stdc++.h>
using namespace std;int A[100005] = {0};
int B[100005] = {0};
int Ans[100005] = {0};
int Carry[100005] = {0};int main(){int N; cin >> N;int Ma; cin >> Ma;for(int i = Ma; i > 0; i --) cin >> A[i];int Mb; cin >> Mb;for(int i = Mb; i > 0; i --) cin >> B[i];// 定进制for(int i = 1; i <= max(Ma, Mb); i ++) Carry[i] = max((max(A[i], B[i]) + 1), 2);// 定各进位差值 for(int i = 1; i <= max(Ma, Mb); i ++) Ans[i] = A[i] - B[i];//for(int i = 1; i <= max(Ma, Mb); i ++) cout << Ans[i] <<" ";// 计算差值/*long long a = 0, b = 0;//注意要long long for(int i = Ma; i >= 1; i --){a = (a * Carry[i] + A[i]) % 1000000007;//注意取模 }for(int i = Mb; i >= 1; i --){b = (b * Carry[i] + B[i]) % 1000000007;}long long ans = (a - b + 1000000007) % 1000000007;//因为可能出现负数所以先+inf*/long long ans = 0;for(int i = max(Ma, Mb); i >= 2; i --)ans = ((ans + Ans[i]) * Carry[i - 1]) % 1000000007;ans += Ans[1];ans %= 1000000007;cout << ans;return 0;
}
6. 统计子矩阵
【背模板、学习此题遍历矩阵的方式】
【70%】【二位前缀和】
#include <bits/stdc++.h>
using namespace std;int a[505][505], s[505][505];int main(){long long ans = 0;long long N, M, K; cin >> N >> M >> K;// 存矩阵 for(int i = 1; i <= N; i ++)for(int j = 1; j <= M; j ++)scanf("%d", &a[i][j]);// 求二位前缀和 for(int i = 1; i <= N; i ++)for(int j = 1; j <= M; j ++)s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];// 统计所有矩阵int x1, x2, y1, y2;for(int x1 = 1; x1 <= N; x1 ++)for(int y1 = 1; y1 <= M; y1 ++)for(int x2 = x1; x2 <= N; x2 ++)for(int y2 = y1; y2 <= M; y2 ++)if(s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1] <= K) ans ++;else break;cout << ans;return 0;
}
【100%】【二维前缀和 + 双指针】
#include <bits/stdc++.h>
using namespace std;int a[505][505], s[505][505];long long ans = 0;int main(){long long N, M, K; cin >> N >> M >> K;// 求二位前缀和 for(int i = 1; i <= N; i ++)for(int j = 1; j <= M; j ++){int a; cin >> a;s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + a;}// 统计所有矩阵for(int x1 = 1; x1 <= N; x1 ++)for(int x2 = x1; x2 <= N; x2 ++)for(int y1 = 1, y2 = 1; y2 <= M; y2 ++){while(y1 <= y2 && s[x2][y2] - s[x1-1][y2] - s[x2][y1-1] + s[x1-1][y1-1] > K)y1 ++;ans += y2 - y1 + 1;}cout << ans;return 0;
}
7. 积木画
【普通二维动态规划】

#include <bits/stdc++.h>
using namespace std;long long dp[10000005][3];
const int inf = 1000000007;/*
dp[i][0] 刚好铺满
dp[i][1] 上面差一个
dp[i][2] 下面差一个 dp[i][0] = dp[i - 1][0] + dp[i - 2][0] + dp[i - 1][1] + dp[i - 1][2]
dp[i][1] = dp[i - 2][0] + dp[i - 1][2]
dp[i][2] = dp[i - 2][0] + dp[i - 1][1]*/int main(){long long N; cin >> N;// 初始化 dp[1][0] = 1; dp[1][1] = 0; dp[1][2] = 0;dp[2][0] = 2; dp[2][1] = 1; dp[2][2] = 1;// 递推 for(int i = 3; i <= N; i ++){dp[i][0] = (dp[i - 1][0] + dp[i - 2][0] + dp[i - 1][1] + dp[i - 1][2]) % inf; dp[i][1] = (dp[i - 2][0] + dp[i - 1][2]) % inf;dp[i][2] = (dp[i - 2][0] + dp[i - 1][1]) % inf;}cout << dp[N][0];return 0;
}
8. 扫雷
【bfs/dfs专项训练】
9. 李白打酒加强版
【记忆化搜索、dfs 专项训练】
【普通多维动态规划】
#include <bits/stdc++.h>
using namespace std;long long dp[105][105][105];
const int inf = 1000000007;
/*
if(d == 0 && h == 0) continue;
if(h > 0) dp[d][h][w] = dp[d][h - 1][w + 1];
if(d > 0 && w != 0 && w % 2 == 0) dp[d][h][w] += dp[d - 1][h][w / 2];*/int main(){int N, M; cin >> N >> M;dp[0][0][2] = 1;for(int d = 0; d <= N; d ++)for(int h = 0; h <= M; h ++)for(int w = 0; w <= M; w ++){if(d == 0 && h == 0 && w != 2) dp[d][h][w] = 0;if(h > 0) dp[d][h][w] = dp[d][h - 1][w + 1];if(d > 0 && w % 2 == 0) dp[d][h][w] += dp[d - 1][h][w / 2];dp[d][h][w] %= inf;}cout << dp[N][M - 1][1];return 0;
}
10. 砍竹子
【未完全解决】
【未完待续ing】
相关文章:
蓝桥杯_B组_省赛_2022(用作博主自己学习)
题目链接算法11.九进制转十进制 - 蓝桥云课 进制转换 21.顺子日期 - 蓝桥云课 时间与日期 31.刷题统计 - 蓝桥云课 时间与日期 41.修剪灌木 - 蓝桥云课 思维 51.X 进制减法 - 蓝桥云课 贪心 61.统计子矩阵 - 蓝桥云课 二维前缀和 71.积木画 - 蓝桥云课 动态规划 82.扫雷 - 蓝桥…...
RK3568 Android 13 内置搜狗输入法小计
问:为什么写? 答:网上搜出来的都试过了,不行!下面直接上代码和注意事项! 首先到这个目录(/RK3568/Rockchip_Android13_SDK_Release/device/rockchip/rk356x/tl3568_evm/preinstall)…...
单片机Day1
目录 一.什么是单片机? 二.单片机的组成 三.封装形式 四.优势 五.分类 通用型: 专用型: 按处理的二进制位可以分为: 六.应用: 七.发展趋势 1.增加CPU的数据总线宽度。 2.存储器的发展。 3.片内1/0的改进 …...
《机器学习》之贝叶斯(Bayes)算法
目录 一、前言 二、贝叶斯算法原理解析 1、贝叶斯公式 2、朴素贝叶斯算法 3、计算步骤 4、例题: (1)、 计算先验概率 (2)、计算条件概率 (3)、计算后验概率 (4)…...
Redis实现高效的负载均衡算法
1. Redis存储设计 我们需要在 Redis 中存储以下信息: 配置列表(List<Config>):存储所有配置项。总权重:存储所有配置的总权重。当前轮询状态:存储当前的轮询状态(如当前随机值或索引&am…...
虚拟文件系统 VFS
目录 虚拟文件系统 VFS 文件系统挂载过程 虚拟文件系统 VFS 统一标准的系统调用接口: VFS定义了一组标准的文件操作API,如open(), read(), write(), close()等,使得用户空间的应用程序无需关心底层文件系统的具体类型。 下层文件系统必须实现…...
基于Android的民宿租赁系统的设计与实现
博主介绍:java高级开发,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...
数据链路层-STP
生成树协议STP(Spanning Tree Protocol) 它的实现目标是:在包含有物理环路的网络中,构建出一个能够连通全网各节点的树型无环逻辑拓扑。 选举根交换机: 选举根端口: 选举指定端口: 端口名字&…...
OceanBase环境搭建与熟悉全攻略:开启分布式数据库探索之旅
《OceanBase环境搭建与熟悉全攻略:开启分布式数据库探索之旅》 在当今数字化浪潮汹涌澎湃的时代,数据量呈爆炸式增长,业务对数据库的性能、可靠性和扩展性提出了前所未有的要求。OceanBase作为一款极具创新性的分布式数据库,正逐…...
tensor core实现flash_attn_mma_share_kv源码分析
一 源码分析 1.1 函数入口 void flash_attn_mma_stages_split_q_shared_kv(torch::Tensor Q, torch::Tensor K, torch::Tensor V, torch::Tensor O, int stages) {CHECK_TORCH_TENSOR_DTYPE(Q, torch::kHalf) // Q [B,H,N,D]CHECK_TORCH_TENSOR_DTYPE(K, torch::kHalf) // K …...
【源码解析】Java NIO 包中的 MappedByteBuffer
文章目录 1. 前言2. MappedByteBuffer3. 例子4. 属性5. 构造器6. mappingOffset、mappingAddress、mappingLength7. isLoaded 判断内存是否还在内存中8. load 方法将 ByteBuffer 加载到 Page Cache 中9. force 刷盘 1. 前言 上一篇文章我们介绍了 HeapByteBuffer 的源码&#…...
【Docker系列】容器内目录显示异常的解决之道
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
echarts:dataZoom属性横向滚动条拖拽不生效
问: 拖拽的过程中,第一次向右拖拽正常,然后就报错: echarts报错: var pointerOption pointerShapeBuilder[axisPointerType](axis,pixeValue,otherExtent),(axis,pixeValue,otherExtent)下划线红色报错:…...
25/1/12 算法笔记 剖析Yolov8底层逻辑
YOLOv8 是一种基于深度学习的目标检测和图像分割模型,属于 YOLO(You Only Look Once)系列的最新版本。YOLO 系列模型以其高效的实时目标检测能力而闻名,YOLOv8 在此基础上进行了一些优化和改进。 Yolov8的主要特点: …...
Python双指针
双指针 双指针:在区间操作时,利用两个下标同时遍历,进行高效操作 双指针利用区间性质可以把 O ( n 2 ) O(n^2) O(n2) 时间降低到 O ( n ) O(n) O(n) 反向扫描 反向扫描: l e f t left left 起点,不断往右走&…...
1、docker概念和基本使用命令
docker概念 微服务:不再是以完整的物理机为基础的服务软件,而是借助于宿主机的性能。以小量的形式,单独部署的应用。 docker:是一个开源的应用容器引擎,基于go语言开发的,使用时apache2.0的协议。docker是…...
数据结构与算法之链表: LeetCode 92. 反转链表 II (Ts版)
反转链表 II https://leetcode.cn/problems/reverse-linked-list-ii/description/ 描述 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 示例 1 输入&…...
【PPTist】插入形状、插入图片、插入图表
一、插入形状 插入形状有两种情况,一种是插入固定的形状, 一种是插入自定义的形状。 插入固定的形状时,跟上一篇文章 绘制文本框 是一样一样的,都是调用的 mainStore.setCreatingElement() 方法,只不多传的类型不一…...
三台Centos7.9中Docker部署Redis集群
Docker部署Redis集群 1. 安装 Docker 和 Docker Compose安装 Docker:安装 Docker Compose: 2. 配置 Redis 容器和网络3. 启动 Redis 容器4. 设置 Redis 集群4.1 集群创建异常处理 5. 验证和测试总结 如果 CentOS 服务器上还没有安装 Docker 和 Docker Co…...
Entity 的材质(棋盘、条纹、网格)
Entity 的材质 普通物体的材质 import { nextTick, onMounted, ref } from vue import * as Cesium from cesium // console.log(Cesium, Cesium)const viewer ref<any>(null)onMounted(() > { ... })let material Cesium.Color.YELLOW.withAlpha(0.5)Cesium.Colo…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
StarRocks 全面向量化执行引擎深度解析
StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计,相比传统行式处理引擎(如MySQL),性能可提升 5-10倍。以下是分层拆解: 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...
