2025蓝桥省赛c++B组第二场题解

前言

这场的题目非常的简单啊,至于为什么有第二场,因为当时河北正在刮大风被迫停止了QwQ,个人感觉是历年来最简单的一场,如果有什么不足之处,还望补充。

试题 A: 密密摆放

【问题描述】
小蓝有一个大箱子,内部的长宽高分别是 200 、250 、240 (单位:毫米),
他要用这个大箱子来放一些同样大小的小盒子,小盒子的外部长宽高分别是
30、40、50 (单位:毫米)。小盒子允许从各个方向旋转(包括可以平放和倒
放)。
请问小蓝最多可以在一个大箱子里面放多少个小盒子。
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

答案:

200

试题 B: 脉冲强度之和

【问题描述】
在蓝桥电子工坊,工程师小蓝正在设计一款智能脉冲生成器,用于驱动一
种新型设备。该设备的运行依赖于特定的脉冲强度,用正整数 p 表示,其必须
满足以下三个条件:

  1. 可由连续 10 个正整数之和组成:即存在一个正整数 k ,使得脉冲强度
    p = k + (k + 1) + (k + 2) + · · · + (k + 9) 。
  2. 各个数位上的数字都相同:例如 1111 、22222 、333333 等。
  3. 数值不超过 20255202:即 1 ≤ p ≤ 20255202。
    通过计算所有符合条件的脉冲强度之和,小蓝能够优化设备运行模式。对
    此,请帮助他计算这一总和。

答案:

55 + 555 + 5555 + 55555 + 555555 +5555555 = 6172830

试题 C: 25 之和

【问题描述】
小蓝最近对求和很着迷,给定一个正整数 n ,他想求从 n 开始的连续 25
个整数的和,即 n + (n + 1) + (n + 2) + · · · + (n + 24) ,请帮帮他吧。
【输入格式】
输入一行包含一个正整数 n 。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入 1】
1
【样例输出 1】
325
【样例输入 2】
100
【样例输出 2】
2800
【评测用例规模与约定】
对于 40% 的评测用例,1 ≤ n ≤ 100 ;
对于所有评测用例,1 ≤ n ≤ 10000 。

答案:

应该没什么好讲的吧~

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;int ans =0 ;signed main() {int n;cin >> n;ans = 300 + 25 * n;cout << ans;return 0;
}

试题 D: 旗帜

【问题描述】
小蓝要画一个 LANQIAO 图形,并把这个图形做成一个旗帜。图形的形状
为一个 h×w 的矩形,其中 h 表示图形的高,w 表示图形的宽。当 h = 5,w = 10
时,图形如下所示:
LANQIAOLAN
ANQIAOLANQ
NQIAOLANQI
QIAOLANQIA
IAOLANQIAO
图形的规律是:第一行用 LANQIAO 重复填入,第二行开始,每行向左移
动一个字符,用 LANQIAO 重复填入。
小蓝需要把图形中的每个字母都剪出来,以粘贴到旗帜上,他想知道,给
定图形的高和宽,图形中有多少个 A 。
【输入格式】
输入的第一行包含两个正整数 h,w ,用一个空格分隔。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
5 10
【样例输出】
14
【评测用例规模与约定】
对于 30% 的评测用例,h = 1 ,1 ≤ w ≤ 20 ;
对于 60% 的评测用例,1 ≤ h,w ≤ 20 ;
对于所有评测用例,1 ≤ h,w ≤ 100 。

答案:

数据量很少,不用想太复杂,直接暴力即可。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;int ans =0 ;
int n, m;signed main() {cin >> n >> m;string s = "LANQIAO";for (int i = 0; i <n;i++) {int pre = i % 7;for (int j =0;j<m;j++){if (pre == 7) pre = 0;if (s[pre] == 'A') ans++;pre++;}}cout << ans;return 0;
}

试题 E: 数列差分

【问题描述】
小蓝有两个长度均为 n 的数列 A = {a1, a2, · · · , an} 和 B = {b1, b2, · · · , bn} ,将两个数列作差定义为 C = A − B = {c1 = a1 − b1, c2 = a2 − b2, · · · , cn = an − bn}。
小蓝将对数列 B 进行若干次操作,每次操作可以将数列 B 中的任意一个数更改
为任意一个整数。在进行完所有操作后,小蓝可以按任意顺序将数列 B 重排,
之后再计算数列 C 。小蓝想知道,最少操作多少次可以使得数列 C 中的所有数
都为正整数。
【输入格式】
输入的第一行包含一个正整数 n ;
第二行包含 n 个整数 a1, a2, · · · , an ,相邻整数之间使用一个空格分隔。
第三行包含 n 个整数 b1, b2, · · · , bn ,相邻整数之间使用一个空格分隔。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
4
22 31 12 14
3 19 27 44
【样例输出】
1
【样例说明】
其中一种方案:将 44 改为 0 ,重新排列 B 为 {19, 27, 3, 0} ,使得数列
C = {3, 4, 9, 14} 均为正整数。
【评测用例规模与约定】
对于 30% 的评测用例,n ≤ 10 ;
对于所有评测用例,1 ≤ n ≤ 105 ,−109 ≤ ai ≤ 109 ,−109 ≤ bi ≤ 109 。

答案:

勉强算是这场的难题吧,排序+双指针,因为b的顺序可以打乱,因此a和b即使进行排序操作也不会影响结果。

然后在a中寻找比b的数大的值,如果当前这个a不是说明这个值需要调整。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;int ans =0 ;
int n, m;
int a[N], b[N];signed main() {cin >> n;for (int i = 0; i < n; i++) {cin >> a[i];}for (int i = 0; i < n; i++) {cin >> b[i];}sort(a, a + n);sort(b, b + n);int idx = 0;for (int i = 0; i < n;i++) {if (a[i] > b[idx]) {idx++;}else {ans++;}}cout << ans;return 0;
}

试题 F: 树上寻宝

【问题描述】
小蓝正在一棵含有 n 个结点的树的根结点 1 上,他准备在这棵树上寻宝。
结点 i 上有一个物品,价值为 wi 。然而,小蓝每次寻宝只能从根节点出发走不
超过 k 步,每步只能选择走 1 条边或者 2 条边,之后会自动拾取最终停留的结
点上的物品并被传送回根结点。请求出小蓝最终能获得的物品的总价值。
【输入格式】
输入的第一行包含两个正整数 n, k ,用一个空格分隔。
第二行包含 n 个正整数 w1,w2, · · · ,wn ,相邻整数之间使用一个空格分隔。
接下来 n − 1 行,每行包含两个正整数 ui
, vi ,用一个空格分隔,表示结点
ui 和结点 vi 之间有一条边。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
8 2
6 3 3 1 5 4 3 4
1 2
2 3
2 4
4 5
5 6
6 7
7 8

【样例输出】
22
【样例说明】
走 0 步能到的结点:1 ;
走 1 步能到的结点:2, 3, 4 ;
走 2 步能到的结点:3, 4, 5, 6 ;
因此能到的结点为:1, 2, 3, 4, 5, 6 ,能获得的总价值为 22 。
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 15 ;
对于所有评测用例,0 ≤ k < n ≤ 105 ,1 ≤ wi ≤ 106 ,1 ≤ ui, vi ≤ n 。

答案:

一个简单的搜索,注意考虑k为0的情况。
此外一定要存双向边,因为他题目里面写的是存在一条路径,而不是谁是谁的子节点,我有几个同学在这里挂了QwQ。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;int ans =0 ;
int n, k;
int w[N];
vector<int>e[N];
bool vis[N];void bfs(int num) {queue<int>q;vis[1] = 1;q.push(1);ans = w[1];if (num == 0) return;//这里当时写的多余了while (num-- && q.size()) {int a = q.size();while (a--) {int x = q.front();q.pop();for (auto i : e[x]) {if (!vis[i]) {vis[i] = 1;ans += w[i];q.push(i);}}}}
}
signed main() {cin >> n >> k;for (int i = 1; i <= n;i++) {cin >> w[i];}	for (int i = 0; i < n - 1; i++) {int x, y;cin >> x >> y;e[x].push_back(y);e[y].push_back(x);}bfs(2 * k);cout << ans;return 0;
}

试题 G: 翻转硬币

【问题描述】
给定 n 行 m 列共 n × m 个硬币,对于任意一个硬币,我们将其价值视为与
其相邻(指上、下、左、右相邻)的硬币中与其正反相同的硬币数的平方。
你可以进行任意次操作,每次可以选择任意一行并将该行的硬币全部翻转。
求所有硬币的价值之和最大可能是多少。
【输入格式】
输入的第一行包含两个正整数 n, m ,用一个空格分隔。
接下来 n 行,每行包含 m 个 0 或 1 ,表示给定的 n × m 个硬币。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
4 4
1010
1111
1011
1100
【样例输出】
68
【样例说明】
如图,实线表示正面,虚线表示反面,翻转最后一行可以得到最大价值和:
在这里插入图片描述
【评测用例规模与约定】
对于 40% 的评测用例,n, m ≤ 20 ;
对于所有评测用例,1 ≤ n, m ≤ 1000 。

答案:

应该是最难的一道题了,感觉像是dp,本人太菜了没写出来QwQ。

试题 H: 破解信息

【问题描述】
在遥远的未来,星际旅行已经成为常态。宇航员小蓝在一次探险任务中,
意外发现了一个古老的太空遗迹。遗迹中存放着一个数据存储器,里面记录着
一段加密的信息。经过初步分析,小蓝发现这段信息可以被表示为一个字符串
S,而解密的关键,在于找出 S 中字典序最大的回文子序列。
• 子序列:指从原字符串中抽取若干个字符(可以不连续),按照它们在原
字符串中的相对顺序排列所形成的新序列。例如,对于字符串 “abc”,其
子序列包括 “a”、“b”、“c”、“ab”、“ac”、“bc” 和 “abc”。
• 字典序:指字符串按照字典中的排序规则比较大小的方式。对于两个字符
串,从左到右逐字符比较,先出现较大字符的字符串字典序更大;若比较
到某个字符串结束仍未找到不同的字符,则较短的字符串字典序较小。例
如,“abc” < “abd”,而 “ab” < “abc”。
现在,请你从字符串 S 中,找出字典序最大的回文子序列,帮助小蓝解开
这段来自星际文明的信息。
【输入格式】
输入一行包含一个字符串 S ,表示加密的信息。
【输出格式】
输出一行包含一个字符串,表示 S 中字典序最大的回文子序列。
【样例输入 1】
abcd
【样例输出 1】
d
【样例输入 2】
abab
【样例输出 2】
bb
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ |S | ≤ 300 ,其中 |S | 表示字符串 S 的长度;
对于所有评测用例,1 ≤ |S | ≤ 105 ,S 中只包含小写英文字母。

答案:

虚假的20分题目,此题只需要考虑字符串里面最大的字母的个数,然后输出这么长的该字符即可,原因请结合题目:对于两个字符串,从左到右逐字符比较,先出现较大字符的字符串字典序更大

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e5 + 10;string s;
char ma;
int cnt = 1;
signed main() {cin >> s;for (auto i : s) {if (i > ma) {ma = i;cnt = 1;}else if (i == ma) {cnt++;}}for (int i = 0; i < cnt; i++) {cout << ma;}return 0;
}

如果对于以上题目有什么想法或者错误,欢迎与我积极讨论。

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

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

相关文章

【数据结构与算法】从完全二叉树到堆再到优先队列

完全二叉树 CBT 设二叉树的深度为 h , 若非最底层的其他各层的节点数都达到最大个数 , 最底层 h 的所有节点都连续集中在左侧的二叉树叫做 完全二叉树 . 特点 对任意节点 , 其右分支下的叶子节点的最底层为 L , 则其左分支下的叶子节点的最低层一定是 L 或 L 1 .完全二叉树…

Leetcode:1. 两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示…

flume整合kafka

需求一&#xff1a; 启动flume 启动kafka消费者&#xff0c;验证数据写入成功 新增测试数据 需求二&#xff1a; 启动Kafka生产者 启动Flume 在生产者中写入数据

Hbase集群管理与实践

一、HBase集群搭建实战 1.1 环境规划建议 硬件配置基准(以10节点集群为例): 角色CPU内存磁盘网络HMaster4核16GBSSD 200GB(系统盘)10GbpsRegionServer16核64GB124TB HDD(JBOD)25GbpsZooKeeper4核8GBSSD 500GB10Gbps1.2 关键配置项示例(hbase-site.xml) <configu…

STM32 开发 - stm32f10x.h 头文件(内存映射、寄存器结构体与宏、寄存器位定义、实现点灯案例)

概述 STM32F10x.h 是 STM32F1 系列微控制器的核心头文件&#xff0c;提供了所有外设寄存器的定义和内存映射 一、内存映射 #define PERIPH_BASE ((uint32_t)0x40000000)#define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE 0x…

QEMU源码全解析 —— 块设备虚拟化(23)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(22) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! QEMU启动过程中的块设备虚拟化 上一回解析了qcow2格式对应的qcow2_open函数,本回解…

【PCB工艺】推挽电路及交越失真

推挽电路(Push-Pull Circuit) 推挽电路(Push-Pull Circuit) 是一种常用于功率放大、电机驱动、音频放大等场合的电路结构,具有输出对称、效率高、失真小等优点。 什么是推挽电路? 推挽是指:由两种极性相反的器件(如 NPN 和 PNP、NMOS 和 PMOS)交替导通,一个“推”电…

RD电子实验记录本选用贴士A-B-C

传统的实验记录本&#xff0c;令人又爱又恨本 如何挑选电子实验室记录本&#xff08;ELN&#xff09;的品牌/服务商/供应商&#xff1f; 电子实验记录本&#xff0c;又名为ELN&#xff0c;Electronic lab notebook&#xff0c;enotebook&#xff0c;研发电子管理系统&#xf…

Qt实战之将自定义插件(minGW)显示到Qt Creator列表的方法

Qt以其强大的跨平台特性和丰富的功能&#xff0c;成为众多开发者构建图形用户界面&#xff08;GUI&#xff09;应用程序的首选框架。而在Qt开发的过程中&#xff0c;自定义插件能够极大地拓展应用程序的功能边界&#xff0c;让开发者实现各种独特的、个性化的交互效果。想象一下…

java基础之枚举和注解

枚举 简介 枚举&#xff1a;enumeration&#xff0c;jdk1.5中引入的新特性&#xff0c;用于管理和使用常量 入门案例 第一步&#xff1a;定义枚举&#xff0c;这里定义一个动物类&#xff0c;里面枚举了多种动物 public enum AnimalEnum {CAT, // 猫DOG, // 狗PIG // …

2.3java运算符

运算符 1. 算术运算符 算术运算符用于执行基本的数学运算&#xff0c;像加、减、乘、除等。 运算符描述示例加法int a 5 3; // a 的值为 8-减法int b 5 - 3; // b 的值为 2*乘法int c 5 * 3; // c 的值为 15/除法int d 6 / 3; // d 的值为 2%取模&#xff08;取余&…

升级 Spring Boot CLI

&#x1f31f; 升级 Spring Boot CLI 1️⃣ &#x1f504; 通过包管理器升级 使用对应包管理器命令&#xff08;如 brew upgrade&#xff09; 2️⃣ &#x1f4e5; 手动安装升级 遵循 标准安装说明 注意更新 PATH 环境变量移除旧版本路径 &#x1f517; 链接原文&#xff1a…

如何轻松将RS232转为Profibus DP,提升PLC效率?

如何轻松将RS232转为Profibus DP&#xff0c;提升PLC效率&#xff1f; 今天&#xff0c;我们就来聊聊一个工业自动化中常见的应用场景&#xff1a;如何通过兴达易控RS232转Profibus DP网关&#xff0c;实现流量泵与PLC&#xff08;可编程逻辑控制器&#xff09;的通信。这个话…

QT 连接数据库操作(15)

文章目录 一、本章说明二、QT连接云端数据库实现2.1 ODBC软件安装及参数设置2.2 软件代码实现三、项目源码文件一、本章说明 注:本节为【基于STM的环境监测系统(节点+云服务器存储+QT界面设计)】项目第15篇文章,前面已经创建了监测软件的登录窗口,接下来我们将在主窗口实…

linux系统之----命令行参数和环境变量

一、命令行参数 1.main()函数的参数 在C语言中&#xff0c;main函数可以接收命令行参数&#xff0c;其标准形式为&#xff1a; int main(int argc, char *argv[]) {// 程序代码return 0; } 这里我们解释一下&#xff1a; argc&#xff1a;参数个数计数器&#xff08;Argum…

解析excel中的图片

解析excel中的图片 前言一、pom依赖二、使用步骤1.示例数据2.代码如下&#xff08;示例&#xff09;&#xff1a; 总结 前言 初始化数据是&#xff0c;需要将excel中的数据解析并插入数据库。 但是某几列存放的是图片&#xff0c;这时候怎么办呢。 主要解决的是&#xff1a;获…

Unity任务系统笔记

数据结构设计 任务基类包括的字段&#xff1a; string 任务内容&#xff1b; Transform 任务目的地&#xff1b; MyCharacter 任务开启后要更新对话的NPC&#xff1b; MyTalkData 任务开启后相关NPC要说的对话数据&#xff1b; 共同方法&#xff1a;开启任务、完成任务。…

STM32的开发环境介绍

目录 STM32软件环境 Keil软件在线安装 其他软件环境安装 STM32开发的几种方式 STM32寄存器版本和库函数版本 标准外设库的作用&#xff1a; STM32软件环境 STM32 的集成开发环境&#xff08;IDE&#xff09;&#xff1a;编辑编译软件 常见的环境&#xff1a; (1)KEIL&a…

【特殊场景应对9】视频简历的适用场景与风险分析

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…

Linux系统性能调优技巧分享

在数字化时代,Linux 系统以其开源、稳定、高效的特性,成为服务器、云计算、物联网等领域的核心支撑。然而,随着业务规模的扩大和负载的增加,系统性能问题逐渐凸显。掌握 Linux 系统性能调优技巧,不仅能提升系统运行效率,还能降低运维成本。下面从多个方面介绍实用的性能调…