第十七届蓝桥杯 C++ B组
试题 A: 青春常数
本题总分:5 分
【A问题描述】
小蓝与蓝桥杯的缘分已经走到了第四个年头。从 2023 年的初出茅庐,到 2024、2025 年的披荆斩棘,而今年的 2026 年,将是他大学生涯最后一次站上这个赛场。
退役前夕,百感交集的小蓝在草稿纸上将这四届参赛的年份倒序写下,拼接成了一个巨大的整数 N = 2026202520242023。
在整理四年的竞心得时,他决定将这一常数 N 拆分为两个非负整数 x 和 y ,分别代表他这段旅程的前半段积累与后半段突破。按照拆分规则,这两部分的数值之和必须恰好等于 N (即 x + y = N)。
同时,由于在后半段程中小蓝积累了更深厚的算法功底,因此后半部分的数值 y 必须严格大于前半部分的数值 x (即 0 ≤ x < y)。
现在,请你计算满足上述条件的整数对 (x , y) 共有多少个?
试题 B: 双碳战略
本题总分:5 分
【B问题描述】
城市照明系统的智能化改造是落实国家 "双碳" 战略的核心试点。作为示范工程,市能源局在新建的绿色大道上部署了一组由 2026 盏智能路灯组成的线性阵列。
初始状态下,这 2026 盏路灯均处于高能耗的 "全亮模式"。为了评估系统在极端工况下的响应能力,该局的主控系统需要针对理论上存在的所有开关组合进行全状态遍历推演。
只是,受限于底层硬件的物理特性,主控系统必须严格按照 "双向交替" 的规则执行操作:
- 第奇数次指令(第 1, 3, 5 . . . 次):系统需选定一盏路灯 i (1 ≤ i ≤ 2026),将该路灯及其右侧(后方)所有路灯的开关状态进行翻转(亮变暗,暗变亮)。
- 第偶数次指令(第 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 满足以下条件:
- 数组 A 中的每个元素 A**i 都满足 X ≤ A**i ≤ Y;
- 对于数组 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 − 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 , b ≤ N ,a ≠ b。保证输入的连接信息中不包含重边。
试题 G: 理想温度
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分
【G问题描述】
一条工业流水线上排列着 n 个温度传感器。当前各个传感器测得的温度记录在数组 A 中,而各传感器对应的理想标准温度记录在数组 B 中(即 A**i 为第 i 个传感器的当前温度,B**i 为第 i 个传感器的理想温度)。
为了让尽可能多的传感器达到理想温度,你可以进行一次区域温度补偿操作:
- 在流水线上划定一段连续的传感器区间 [l , r ](即第 l 个到第 r 个传感器)。
- 输入一个温度补偿值 k (k 为任意整数),使得该区间内所有传感器的当前温度都加上 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