第十七届蓝桥杯 C++ B组-题目 (最新出炉 )

第十七届蓝桥杯 C++ B组

试题 A: 青春常数

本题总分:5 分

【A问题描述】

小蓝与蓝桥杯的缘分已经走到了第四个年头。从 2023 年的初出茅庐,到 2024、2025 年的披荆斩棘,而今年的 2026 年,将是他大学生涯最后一次站上这个赛场。

退役前夕,百感交集的小蓝在草稿纸上将这四届参赛的年份倒序写下,拼接成了一个巨大的整数 N = 2026202520242023。

在整理四年的竞心得时,他决定将这一常数 N 拆分为两个非负整数 xy ,分别代表他这段旅程的前半段积累与后半段突破。按照拆分规则,这两部分的数值之和必须恰好等于 N (即 x + y = N)。

同时,由于在后半段程中小蓝积累了更深厚的算法功底,因此后半部分的数值 y 必须严格大于前半部分的数值 x (即 0 ≤ x < y)。

现在,请你计算满足上述条件的整数对 (x , y) 共有多少个?


试题 B: 双碳战略

本题总分:5 分

【B问题描述】

城市照明系统的智能化改造是落实国家 "双碳" 战略的核心试点。作为示范工程,市能源局在新建的绿色大道上部署了一组由 2026 盏智能路灯组成的线性阵列。

初始状态下,这 2026 盏路灯均处于高能耗的 "全亮模式"。为了评估系统在极端工况下的响应能力,该局的主控系统需要针对理论上存在的所有开关组合进行全状态遍历推演。

只是,受限于底层硬件的物理特性,主控系统必须严格按照 "双向交替" 的规则执行操作:

  1. 第奇数次指令(第 1, 3, 5 . . . 次):系统需选定一盏路灯 i (1 ≤ i ≤ 2026),将该路灯及其右侧(后方)所有路灯的开关状态进行翻转(亮变暗,暗变亮)。
  2. 第偶数次指令(第 2, 4, 6 . . . 次):系统需选定一盏路灯 i,将该路灯及其左侧(前方)所有路灯的开关状态进行翻转。

对于 2026 盏路灯,共存在 2^2026 种不同的明暗状态组合,每一种状态都必定能被抵达。针对每一种特定的状态,都存在一个从初始 "全亮" 状态到达该状态所需的最少指令操作次数(无论有多少种不同的操作序列可以到达该状态,仅以步数最少的为准)。

注意:初始的 "全亮" 状态也包含在这 2^2026 种组合中,且到达该状态的最少操作次数记为 0 次。

现在,请你计算出这全部 2^2026 种状态对应的最少操作次数的累加总和。由

于总和可能很大,请将结果对 998244353 取模后输出。


试题 C: 循环右移

时间限制: 1.0s 内存限制: 256.0MB 本题总分:10 分

【C问题描述】

给定三个整数 N , X , Y 。请计算有多少个长度为 N 的整数数组 A 满足以下条件:

  1. 数组 A 中的每个元素 A**i 都满足 XA**iY
  2. 对于数组 A 中的任意一个连续子数组,对其进行一次循环右移操作,得到的新子数组与原数组完全一致。

循环右移:对一个长度为 k 的连续子数组 [B 1, B 2, . . . , B**k ] 执行一次循环右移操作,是指将该子数组变换为 [Bk , B 1, B 2, ..., Bk−1](即把最后一个元素移到最开头,其余元素保持原有顺序依次向后顺延一位)。

【输入格式】

第一行包含一个整数 T ,表示测试数据的组数。

接下来的 T 行,每行包含三个由空格隔开的整数 N , X , Y

【输出格式】

对于每组测试数据,输出一行,包含一个整数,表示满足条件的数组 A 的个数。

【样例输入】

3
3 1 2
5 10 10
2 5 3

【样例输出】

2

1

0

【评测用例规模与约定】

对于 30% 的评测用例,1 ≤ T ≤ 20,1 ≤ N ≤ 100,1 ≤ X , Y ≤ 100; 对于 100% 的评测用例,1 ≤ T ≤ 10^3,1 ≤ N ≤ 10^18,1 ≤ X , Y ≤ 10^18。


试题 D: 蓝桥竞技

时间限制: 1.0s 内存限制: 256.0MB 本题总分:10 分

【D问题描述】

小蓝,作为电竞俱乐部 "蓝桥竞技" 的战队经理,正面临着一个巨大的管理危机。俱乐部目前签约了 N 种不同位置的职业选手,其中第 i 种位置的选手共有 A**i 名。

为了参加即将举办的 "峡谷 5v5",小蓝必须将俱乐部内的所有选手都编入战队,不能有任何一人坐冷板凳。

根据![事组委会的严苛规则,一支合法的战队必须满足以下条件:

  1. 5 人成团:每支战队有且只能由 5 名选手组成。
  2. 职业互斥:同一支战队内的 5 名选手,必须来自 5 种完全不同的位置。

现在,请你帮助小蓝判断:在当前的人员数量下,是否有一种分组方案,能够将所有选手恰好分配完,且每支战队都符合参加规则?

【输入格式】

第一行包含一个整数 T ,表示测试用例组数。接下来包含 T 组数据,每组数据的格式如下:

• 第一行包含一个整数 N,表示职业位置的种类数量。

• 第二行包含 N 个整数 A 1, A 2, . . . , A**N ,分别表示第 i 种位置的选手人数。

【输出格式】

对于每组测试用例,如果存在满足条件的分组方案,输出 'T',否则输出 'F'。

【样例输入】

4

5

1 1 1 1 1
6
2 2 2 2 1 1
5
1 1 1 1 2
6
3 1 1 1 2 2

【样例输出】

T T F F

【样例说明】

第一组数据:共有 5 名选手,各占 1 个位置,恰好可以组成 1 支战队。

第二组数据:共有 10 名选手,可以分成 2 支战队。一种合法的分配方案

是:战队一由位置 1, 2, 3, 4, 5 的选手组成;战队二由位置 1, 2, 3, 4, 6 的选手组成。

第三、四组数据不存在满足条件的分组方案。

【评测用例规模与约定】

对于 30% 的评测用例:1 ≤ T ≤ 5,1 ≤ N ≤ 20,0 ≤ A**i ≤ 100;

对于 100% 的评测用例:1 ≤ T ≤ 10^3,1 ≤ N ≤ 10^5,0 ≤ A**i ≤ 10^9,且保证所有测试用例中 N 的总和不超过 2 × 10^5。



试题 E: LQ 聚合

时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分

【E问题描述】

2056 年,探险队在月球背面的环形山深处发现了一座信号发射塔,其核心控制台正在不断闪烁着一串长度为 N 的粒子序列。

序列中的每个位置被严格定义为 L 型粒子、Q 型粒子,或者因岁月侵蚀而模糊不清的未知状态 ? 。这些粒子将被依次射入反应场,而反应场的稳定性取决于序列的 "LQ 聚合" 数量,该数量被定义为所有满足 1 ≤ i < jN 且第 i 个节点为 L 、第 j 个节点为 Q 的二元组数量。

为了重启这座沉睡的巨塔,探险队需要将序列中所有的 ? 修复为确定的 LQ

现在,请你计算出在所有可能的修复方案中,所能得到的 "LQ 聚合" 数量的最大值是多少。

【输入格式】

第一行输入一个整数 N,表示粒子序列的长度。

第二行输入一个长度为 N 的字符串,仅包含字符 LQ 和 ?,表示当前探测到的粒子序列状态。

【输出格式】

输出一个整数,表示在将所有 ? 替换为 LQ 后,能获得的最大"LQ 聚合"数量。

【样例输入】

5

??L??

【样例输出】

6

【样例说明】

一种最优的策略是将序列修复为 LLLQQ。此时位于前面的 3 个 L 与位于后面的 2 个 Q 共可产生 3 × 2 = 6 个聚合。

【评测用例规模与约定】

对于 30% 的评测用例,字符串 *?* 的个数不超过 10。对于所有评测用例,2 ≤ N ≤ 10^5。


试题 F: 应急布线

时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分

【F问题描述】

实验室内,小蓝负责维护一个由 N 台计算机组成的局域网络。这些计算机原本通过高速网线互联,但随着设备老化,目前仅剩 M 条网线还能正常工作。正因如此,原本统一的网络分裂成了多个互不相连的通信区域。

为了恢复通信,小蓝计划架设一种特殊的 "应急跳线" 来重新连接这些区域。在物理逻辑上,只要任意两台计算机之间可以通过残存的网线或新架设的应急跳线建立直接或间接的通路,即视为它们之间恢复了连通。小蓝的任务是选定最优的布线方案,使得实验室内的所有 N 台计算机重新回到全连通的状态。

由于应急跳线的接口会占用计算机宝贵的硬件资源,小蓝在制定方案时设定了两个优先层级:首先,必须确保使用的应急跳线总数达到理论上的最小值;其次,为了减轻单台计算机的负载压力,他要求尽可能平均地分摊这些跳线。具体而言,他需要寻找一种方案,使得在所有计算机中,接入这种应急跳线数量最多的那一台机器,其接入的跳线数降到最低。

现在,请你根据当前网线的残存连接情况,计算出实现全连通所需的最少应急跳线数量,以及在这一最优前提下,单台计算机接入应急跳线数量最大值的最小可能值。

【输入格式】

第一行包含两个整数 NM,分别表示计算机的总数和目前完好的网线数量。

接下来的 M 行,每行包含两个整数 ab ,表示计算机 ab 之间目前仍存在一条完好的网线。

【输出格式】

输出一行,包含两个由单个空格隔开的整数。第一个整数表示最少需要添加的应急跳线数量,第二个整数表示在确保跳线总数最少的前提下,单台计算机接入跳线数量最大值的最小可能值。

【样例输入】

7 2

1 2

2 3

【样例输出】

4 2

【样例说明】

通过连接 1 − 4,4 − 5,5 − 6,6 − 7(共计 4 条跳线),可以使节点 4, 5, 6 各承担两条跳线,而其他节点仅承担一条或不承担,从而使最大值达到最小值为 2。

【评测用例规模与约定】

对于 30% 的评测用例,1 ≤ N ≤ 100,0 ≤ M ≤ 100;

对于所有评测用例,1 ≤ N ≤ 10^5,0 ≤ M ≤ 10^5,1 ≤ a , bNab。保证输入的连接信息中不包含重边。


试题 G: 理想温度

时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分

【G问题描述】

一条工业流水线上排列着 n 个温度传感器。当前各个传感器测得的温度记录在数组 A 中,而各传感器对应的理想标准温度记录在数组 B 中(即 A**i 为第 i 个传感器的当前温度,B**i 为第 i 个传感器的理想温度)。

为了让尽可能多的传感器达到理想温度,你可以进行一次区域温度补偿操作:

  1. 在流水线上划定一段连续的传感器区间 [l , r ](即第 l 个到第 r 个传感器)。
  2. 输入一个温度补偿值 kk 为任意整数),使得该区间内所有传感器的当前温度都加上 k

请问在执行完这一次校准操作后,最多能使多少个传感器的温度恰好等于其对应的理想标准温度?

【输入格式】

第一行包含一个整数 n,表示传感器的数量。

第二行包含 n 个整数 A 1, A 2, . . . , A**n,表示各传感器的当前温度。

第三行包含 n 个整数 B 1, B 2, . . . , B**n,表示各传感器对应的理想标准温度。

【输出格式】

输出一行,包含一个整数,表示补偿操作后处于理想温度的传感器最大数量。

【样例输入】

5

1 2 3 4 5

2 3 2 3 2

【样例输出】

2

【评测用例规模与约定】

对于 30% 的评测用例,保证 1 ≤ n ≤ 2000;

对于所有评测用例,保证 1 ≤ n ≤ 2 × 10^5, −10^9 ≤ A**i , B**i ≤ 10^9。

试题 H: 足球训练

时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分

【H问题描述】

小蓝是一支足球队的队长,他正在为下一场重要比做准备。接下来的 m天中,他每天可以选择一名队员进行训练,并且选择之后当天的训练对象不能更换。

球队中共有 n 名队员。对于第 i 名队员,已知其:

• 初始实力值为 ai

• 天赋值为 bi

训练规则如下:

• 如果小蓝在某一天训练了队员 i ,则这一天会使该队员的实力值增加 bi

• 如果一共用 k 天来训练队员 i , 那么这名队员的最终实力值将变为: ai + kbi

一支队伍的整体实力定义为所有队员最终实力值的乘积,即:

其中 ki 表示分配给第 i 名队员的训练天数,且满足:

小蓝希望通过合理分配这 m 天的训练计划,使得队伍的整体实力最大。由于结果可能非常大,你只需要输出该最大值对 998244353 取模的结果。

【输入格式】

输入共 n + 1 行。

第一行包含两个正整数 n , m ,分别表示队员人数和可用于训练的总天数。接下来 n 行,第 i 行包含两个正整数 ai , bi ,表示第 i 名队员的初始实力值与天赋值。

【输出格式】

输出一行,包含一个非负整数,表示经过 m 天训练后,队伍实力的最大可能值对 998244353 取模的结果。

【样例输入】

2 3

4 2

5 3

【样例输出】

66

【样例说明】

一种最优方案是:

• 第 1 名队员训练 1 天;

• 第 2 名队员训练 2 天。此时:

• 第 1 名队员的最终实力为 4 + 2 × 1 = 6;

• 第 2 名队员的最终实力为 5 + 3 × 2 = 11。队伍的整体实力为:6 × 11 = 66,因此输出 66。

【评测用例规模与约定】

对于 30% 的数据,n , m ≤ 8;

对于 60% 的数据,n , m , ai , bi ≤ 3000;

对于 100% 的数据,1 ≤ n ≤ 100000,1 ≤ m ≤ 10^9,1 ≤ ai , bi ≤ 10^5

相关推荐
炘爚2 小时前
C++ 右值引用与程序优化
开发语言·c++
si莉亚2 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
zyq99101_13 小时前
DFS算法实战:经典例题代码解析
python·算法·蓝桥杯·深度优先
智者知已应修善业3 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
qinian_ztc3 小时前
frida 14.2.18 安装报错解决
算法·leetcode·职场和发展
良木生香3 小时前
【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
开发语言·c++
小此方3 小时前
Re:从零开始的 C++ 进阶篇(三)彻底搞懂 C++ 多态:虚函数、虚表与动态绑定的底层原理
c++
忘梓.3 小时前
墨色规则与血色节点:C++红黑树设计与实现探秘
java·开发语言·c++
hhh3u3u3u3 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1