2025年第十四届蓝桥杯B组题目及答案.docxVIP

  • 1
  • 0
  • 约1.42万字
  • 约 17页
  • 2026-01-13 发布于江苏
  • 举报

2025年第十四届蓝桥杯B组题目及答案.docx

2025年第十四届蓝桥杯B组题目及答案

考生须知:

1.考试时间为4小时,选手需在规定时间内完成题目并提交答案,以最后一次提交为准。

2.试题包含“结果填空”和“程序设计”两种题型:结果填空题直接填写最终结果,无需提交源代码;程序设计题需提交可运行的源代码,确保对给定输入能正确输出。

3.程序设计题提交要求:主类名必须为Main,不得使用package语句,仅可使用编程语言自带类库,源代码需完整包含import语句(若有)。

4.评卷时使用的输入数据可能与示例数据不同,程序需保证通用性,不得仅适配示例数据。

说明:本套题目适配Java/C++/Python三种主流编程语言,答案部分提供Java实现代码(其他语言可参考解题思路适配),涵盖模拟、贪心、动态规划、搜索、数学运算等核心考点,难度符合蓝桥杯B组赛事要求,适用于赛前强化训练。

第一部分结果填空题(共5题,每题10分)

试题A:平方和计算

题目描述:计算所有≤2025的正整数中,能被3或5整除的数的平方和。

答案:9560775

解题思路:遍历1到2025的所有正整数,判断每个数是否能被3或5整除,若满足条件则计算其平方并累加。需注意使用长整型(long)存储累加结果,避免整数溢出。

参考代码(Java):

publicclassMain{

publicstaticvoidmain(String[]args){

longsum=0;

for(inti=1;i=2025;i++){

if(i%3==0||i%5==0){

sum+=1L*i*i;//强制转换为long避免溢出

}

}

System.out.println(sum);//输出结果:9560775

}

}

试题B:纸牌合并最小代价

题目描述:有N张编号为1到N的纸牌,每次从中选取两张合并为一张新牌,合并的代价等于两张纸牌编号之和。重复此操作直至只剩下一张纸牌,求合并所有纸牌的最小总代价(N=1000)。

答案:798000

解题思路:本题为经典哈夫曼编码问题,核心策略是每次选取当前最小的两张纸牌合并,可通过小根堆(优先队列)高效维护当前纸牌集合。每次取出两个最小值,计算代价后将新牌重新加入堆中,重复至堆中只剩一张牌,累加所有代价即为最小总代价。

参考代码(Java):

importjava.util.PriorityQueue;

publicclassMain{

publicstaticvoidmain(String[]args){

intN=1000;

PriorityQueuelt;Integergt;minHeap=newPriorityQueue();

for(inti=1;i=N;i++){

minHeap.offer(i);

}

longtotalCost=0;

while(minHeap.size()1){

inta=minHeap.poll();

intb=minHeap.poll();

intcost=a+b;

totalCost+=cost;

minHeap.offer(cost);

}

System.out.println(totalCost);//输出结果:798000

}

}

试题C:三维坐标三元组计数

题目描述:在三个坐标系A、B、C中各有500个点,每个点的坐标为(x,y,z)(整数)。统计满足“点A到原点的距离=点B到原点的距离=点C到原点的距离”的三元组(Ai,Bj,Ck)的数量。(注:距离计算可简化为平方距离,避免浮点数误差,即x2+y2+z2)

答案:1268

解题思路:首先预计算三个坐标系中每个点到原点的平方距离,存储在三个数组中。然后通过三重循环枚举所有三元组,利用平方距离相等的条件筛选有效三元组。为优化效率,可先枚举前两个坐标系的点,记录距离相等的配对,再在第三个坐标系中统计相同距离的点的数量,减少循环次数。

参考代码(Java):

publicclassMain{

staticclassPoint{

intx,y,

文档评论(0)

1亿VIP精品文档

相关文档