去年大三上,我参加了学校的蓝桥杯校园选拔。
很幸运,成功入选,学校也帮忙报销了报名费。
4 月 12 日,我走进考场,参加了第十七届蓝桥杯 Java B 组省赛。
四个小时,一台电脑,一套题。
写完走出考场那一刻,脑子是空的。
但也就是那一场比赛,让我真正明白:
算法竞赛,不只是刷题,更是一次完整的思维对抗。
一、蓝桥杯到底是什么?
简单来说:
蓝桥杯是国内大学生中含金量很高的程序设计竞赛之一。
它的特点很明确:
分为省赛、国赛两轮 分组清晰(A组 / B组) 题型包括结果填空和程序设计 比赛时间为 4 小时 采用在线评测系统提交答案
它不像 ACM 那样极限,但也绝对不简单。
对于大多数普通本科生来说:
蓝桥杯是最容易入门,同时也最容易拉开差距的比赛。
二、今年这套题,真的不简单
这次 Java B 组,一共 8 道题:
A、B:填空题(各 5 分) C、D:基础算法题(各 10 分) E、F:中等难度(各 15 分) G、H:压轴题(各 20 分)
整体结构非常典型,但难度分层明显。
三、题目盘点(精简版)
A题:和平干饭日
有 26 只猫。
第 n 天的粮食数量是把 1 到 n 拼接成一个整数,例如:
第 1 天:1 第 2 天:12 第 3 天:123
问题是:在前 2026 天中,有多少天的粮食总数能被 26 整除。
这题的核心在于大整数构造和取模规律。
B题:干涉条纹
给定两个范围:
a ∈ [0, A] b ∈ [0, B]
要求满足 a + b 是完全平方数。
问有多少种不同组合(结果对 998244353 取模)。
本质是枚举平方数,然后统计区间内的合法组合数量。
C题:游戏指令解析器
给定一组完整指令,再输入若干字符串。
规则如下:
如果只匹配一个指令前缀,输出该指令 如果匹配多个,输出 ambiguous 如果一个都匹配不到,输出 unknown
这是一道典型的字符串前缀匹配问题,可以用 Trie(字典树)解决。
D题:量子态叠加计数器
给定多个 0/1 序列。
统计所有区间中,恰好包含 K 个 1 的区间数量。
这是一个经典问题,可以用前缀和 + 哈希优化解决。
E题:共享单车
给定 n 辆车和 m 个停车点。
每辆车移动到某个停车点的代价是两点距离的绝对值。
每个停车点最多停一辆车。
要求最小总移动成本。
这题的关键是排序之后进行贪心匹配。
F题:擂台赛
每个选手都有一个目标擂台。
按顺序出战,会关闭原擂台。
目标是让最终被使用的擂台数量最少。
本质是图结构问题,类似基环树,需要设计合理的出战顺序。
G题:星座导航校准器
选择若干卫星组成集合,需要满足:
整体连通 至少选择 K 个
目标是最大化一个复杂函数:
总信号强度 + 几何加成 - 干扰惩罚
这题是典型的搜索 + 剪枝 + 图论综合题,属于压轴难度。
H题:回程
从节点 n 到节点 1。
可以使用最多 3 次特殊机会,让某条边的代价变为 1。
求最小路径代价。
这题本质是分层图 + 最短路径(Dijkstra)问题。
四、这套题的真实难度
这套题的分层非常清晰:
前两题基本是送分题
中间两题考察基础算法
E、F 开始拉开差距
G、H 是真正的分水岭
可以这样理解:
前四题决定你有没有机会 后四题决定你能走多远
五、我的真实发挥
考完出来之后,我脑子里只有一个问题:
我到底做对了几题?
有的题思路是对的,但没写完 有的题写了一半卡住 有的题甚至没来得及看
那种感觉其实很真实:
不是不会,而是时间不够,细节没处理好。
六、为什么我还是建议你参加?
因为蓝桥杯带来的,不只是奖项。
第一,真正提升做题能力
平时刷题是看懂为主 比赛是完全靠自己思考和突破
第二,第一次真正感受到时间压力
4 小时 8 道题,你必须学会取舍
第三,对未来有帮助
无论是找实习、考研,还是继续走算法路线 蓝桥杯都是一个很好的起点
七、最后,留个问题
这套题我已经整理给你了。
你可以猜一猜:
我最后做对了几题?
欢迎大家留言
如果你也准备参加蓝桥杯,请记住一句话:
算法不是天赋,是重复训练之后形成的能力。