2025年清华版高中计算机编程竞赛真题.docxVIP

  • 0
  • 0
  • 约1.94千字
  • 约 5页
  • 2026-01-07 发布于安徽
  • 举报

2025年清华版高中计算机编程竞赛真题.docx

2025年清华版高中计算机编程竞赛真题(模拟卷)

(考试时间:3小时满分:100分)

说明:本题卷包含5道编程题,覆盖算法与数据结构核心知识点(如动态规划、图论、搜索、贪心、数学等),要求用C++/Python/Java等常见语言实现。代码需正确、高效,部分题目需考虑边界条件与复杂度优化。

一、数字三角形(动态规划,20分)

题目描述

给定一个由n行数字组成的三角形(1≤n≤100),第i行有i个数字(0≤数字≤100)。从三角形的顶部(第1行第1个数字)出发,每次只能移动到下一行相邻的数字(即当前位置为第i行第j个数字,下一步可到第i+

输入格式

第一行:整数n(行数);

接下来n行:每行i个整数,表示第i行的数字(i从1到n)。

输出格式

一个整数,表示最大路径和。

样例输入

4

3

74

246

8593

样例输出

23

解释:最优路径为3→7→4→9,和为3+7+4+9=23。

二、最短路径(Dijkstra算法,20分)

题目描述

给定一个带权无向图(无负权边),包含n个节点(编号1~n,1≤n≤1000)和m条边(1≤m≤104)。每条边连接节点u和v,权值为

输入格式

第一行:两个整数n和m;

接下来m行:每行三个整数u,v,w,表示一条无向边。

输出格式

一个整数,表示最短路径长度(或-1)。

样例输入

44

121

232

343

1410

样例输出

6

解释:最短路径为1→2→3→4,长度为1+2+3=6。

三、括号匹配(栈的应用,15分)

题目描述

给定一个仅包含字符‘(’、‘)’、‘[’、’]’的字符串s(1≤|s|≤104),判断其中的括号是否完全匹配。匹配规则:

-每个‘(’必须与一个后续的‘)’匹配,且中间不能有其他未匹配的括号;

-每个‘[’必须与一个后续的’]’匹配,且中间不能有其他未匹配的括号;

-不同类型的括号(如‘(’和

输入格式

一行:字符串s。

输出格式

若括号完全匹配,输出“Yes”;否则输出“No”。

样例输入1

([])

样例输出1

Yes

样例输入2

([)]

样例输出2

No

四、质数统计(埃氏筛法,15分)

题目描述

给定两个整数L和R(1≤L≤R≤

输入格式

一行:两个整数L和R。

输出格式

一个整数,表示质数的个数。

样例输入

1020

样例输出

4

解释:区间[10,20]内的质数为11,13,17,19,共4个。

五、背包问题(0-1背包,30分)

题目描述

给定n个物品(1≤n≤100)和一个容量为W的背包(1≤W≤1000)。每个物品有一个重量wi(1

输入格式

第一行:两个整数n和W;

接下来n行:每行两个整数wi,vi,表示第i

输出格式

一个整数,表示最大价值。

样例输入

34

12

23

34

样例输出

5

解释:选择第1个(重量1,价值2)和第2个(重量2,价值3)物品,总重量1+2=3≤4,总价值2+3=5。

参考答案与解题思路(部分)

一、数字三角形

思路:动态规划(DP)。设dp[i][j]表示到达第i行第j个数字时的最大路径和。状态转移方程:

dp[i][

二、最短路径

思路:Dijkstra算法(优先队列优化)。维护一个距离数组dist[],初始时

三、括号匹配

思路:栈的应用。遍历字符串,遇到左括号(‘(’或‘[’)时入栈,遇到右括号时检查栈顶是否为对应的左括号(’)’对应’(’,’]’对应‘[’)。若匹配则弹栈,否则非法。最后栈为空则合法。

代码关键:用数组或列表模拟栈,注意检查栈是否为空(避免弹空栈)。

四、质数统计

思路:埃拉托斯特尼筛法(埃氏筛)。预处理1到R的所有质数,标记非质数(从2开始,将每个质数的倍数标记为非质数)。最后统计[L,R]内未被标记的数的个数。

代码关键:初始化一个布尔数组isprime[]

五、0-1背包

思路:动态规划。设dp[j]表示背包容量为j时的最大价值。状态转移:对于每个物品,逆序遍历容量j(从W到wi),更新

备考建议:

1.熟练掌握基础算法模板(如Dijkstra、DP、DFS/BFS、筛法)。

2.注意输入输出的效率(大数据量时用快速读入,如C++的scanf比cin快)。

3.调试时优先处理边界条件(如n=1、

通过针对性训练这些高频考点,可有效提升竞赛实战能力!????

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档