首先表明下拿了省一国三
参赛历程:参加省赛的时候上机的考试座位安排一般是一个学校的在一个班级考,考C/C++和考java交叉坐,题目基本一样,考试总时长是4个小时。考试当天早上我随着集体一起去的,一个带队老师。当知道自己能参加国赛的时,很开心,可以公费去北京耍一波了,学校在安徽所以比较远,坐的高铁。考试提前一天早上去的,下午抵达预定好的酒店,当天晚上就去了王府井耍了一波,晚上10点多回的酒店。第二天考试,带队老师送我去的考场(北农),考完后也没消停,直接去了故宫、天安门广场等景点。(虽然长城没去有点小遗憾,但是总体不错了),第三天中午在回返校的途中得知拿了国三,晚上抵达学校。
比赛结果:2018年4月参加的省赛10道编程题写对7题最后一题半对(由于缺乏代码的优化导致从时间复杂度角度来看超时因此通过的测试数据可能只有一半)。2018年5月参加的国赛6道编程题写对4题同样最后一题半对。
心得体会:为参加此次比赛我准备了长达4个月的时间专门练习程序设计题,关于如何准备这次比赛,我想大家应该多学习数据结构相关知识,当然算法优化这方面要多花点功夫,往往一个好的算法不仅从代码量上还是逻辑思路理解方面上来解决实际问题都有其优越性。准备省赛的话,必须有以下基本数据结构算法(如果想取得省一的话):
- 枚举
- 递归、递推
- DFS和BFS(重点)
- 回溯法(重点)
- 最小生成树以及树结构的提问方式(如节点所在树的深度或层次、俩节点是否是相同父节点、节点与节点之间的最短路径等相关问题)
- 各类排序(深入理解以达到在实际问题中取最佳解决方式)
- 动态规划(最长单调子序列、dp背包问题、加权最短路径等较难理解,如果你想取得好的名次的话)
- 博弈论(难,选择性学习)
除了以上的数据结构和算法,还得注意平时数学相关的知识(如面积公式、牛顿二项式定理)以及C/C++/java基础知识(尤其是数据类型之间的转换、数据精度、数组、集合的使用)。
写此总结一是为了记录自己比赛历程,二是为了给大家分享下经历。