乙级(Basic Level)
考生应具备以下基本能力:
1· 基本的C/C++的代码设计能力,以及相关开发环境的基本调试技巧;
2· 理解并掌握最基本的数据存储结构,即:数组、链表;
3· 理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;
4· 能够分析算法的时间复杂度、空间复杂度和算法稳定性;
5· 具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。
甲级(Advanced Level)
在达到乙级要求的基础上,还要求:
1· 具有充分的英文阅读理解能力;
2· 理解并掌握基础数据结构,包括:线性表、树、图;
3· 理解并熟练编程实现经典高级算法,包括哈希映射、并查集、最短路径、拓扑排序、关键路径、贪心、深度优先搜索、广度优先搜索、回溯剪枝等;
4· 具备较强的问题抽象和建模能力,能实现对复杂实际问题的模拟求解。
顶级(Top Level)
在达到甲级要求的基础上,还要求:
1· 对高级、复杂数据结构掌握其用法并能够熟练使用,如后缀数组、树状数组、线段树、Treap、静态KDTree等;
2· 能够利用经典算法思想解决较难的算法问题,如动态规划、计算几何、图论高级应用(包括最大流/最小割,强连通分支、最近公共祖先、最小生成树、欧拉序列)等,并灵活运用;
3· 能够解决复杂的模拟问题,编写并调试代码量较大的程序;
4· 具有缜密的科学思维,考虑问题周全,能够正确应对复杂问题的边界情况。
版权声明:本文为SY_Yu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。