CCF-CSP认证考试介绍以及复习技巧指导
-
CCF-CSP考试时间及费用
时间一般是每年3、9、12月的中旬,报名时间一般也是提前一个月,不固定。
非计算机协会会员300元/次,会员180元/次(学生会员需缴纳50元/年的会费),相当于一年可以打三次折。
-
编程语言及编译器
- C/C++:Dev-CPP 5.4.0 (Min GW 4.7.2)
- Java:Eclipse (Java SDK 1.7.0_15)
- Python:3.6.5
- 浏览器:Chrome
报名时选择其中一种编程语言,而且考试时只能用报名时选择的语言答题.
-
难度及题目规律
难度呈幂次增长(第一题难度n,第二题难度,第三题难度......:
第一题:一般是数值方面的问题(一群整数)基本一个for循环可以解决的了,比较简单,学过C语言基本可以得分。推荐哈工大苏小红的C语言程序设计,这本书相对来说比较高阶,会有涉及到链表操作,这对学习数据结构很有帮助。
第二题:一般是接近的复杂度,最少得需要两个For循环,要说两个For循环也不难,难就难在一般是时序题、通常要排序,而且要用到多元数据。比如18年3月的第二题碰撞的小球,
数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。
当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。
当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。
现在,告诉你线段的长度L,小球数量n,以及n个小球的初始位置,请你计算t秒之后,各个小球的位置。---来自ccf-csp考题
其中会涉及到长度、个数、时间、速度等不同单位的数据。
第三题:一般会是字符串的处理,而且一般是对复杂文本的处理,这里最好使用C++里边的String类做字符串处理,如果要自己用c语言写字符串处理函数,不仅不一定写对,而且还会相当麻烦,浪费时间。
第四题:一般会用到高等数据结构,比如树、图,而且需要用到的算法也不是课本上学到的简单算法,得用更高级一点的时间、空间效率更高一点的算法。
第五题:一般是纯粹的算法题。但是算法难度一般是ACM级别的,所以经过ACM训练的训练员也不一定能拿满分。
-
准备的东西
- 训练题:(1)ACM题库。(2)CCF-CSP真题,总结每年题型。
- 书籍:CCF—CSP考试是可以带书进去的 ,(1)如果对语法掌握不熟练的话可以带一本编程语言书。(2)最好带一本C++ STL方面的书(是STL工具书,STL怎么使用的书,而不是STL源码分析类的书)STL方面的书可以帮助我们又快有准的写出想要的排序等代码,如果我们当场写的话会很浪费时间。(3)算法书,有资源的可以找一本ACM培训竞赛书,前面也说过书上的算法对付考试是不行的。需要更好的算法。
- 每天写程序,不能手生,最少得2h,适应4h的考试时间。
-
最后说一点得分技巧以及着重训练能力
技巧篇:说明——CCF-CSP是机器阅卷评分,题目规定有代码运行用时,超时的测试用例是没有分的。给分目前最小单位是10分,按照对你的代码的一个测试,比如从10到100这个规模来20%测试用例,100-1000来30%测试用例,1000-10000来50%测试用例,通过一个测试用例给10分,也就是说(1)我们自己测试对的在评分的时候不一定能拿满分;(2)我们在3、4、5题上也可以通过实现简单数据集上的代码而得分,而不是一分得不了,3、4、5题我们可以从最小规模开始,可以排除特殊情况来写代码,只要简单的测试用例能通过我们就能得分。
训练能力:我们要想拿高分就要有针对性的训练。(1)首先不能再出基础性错误,比如输入输出,要按照题目规定来,要求输入或输出两个数据间用空格分开我们不能使用回车分开,这样会导致0分。我们可以通过真题训练自己所使用语言输入输出代码的格式,也不要在这上面浪费时间。(2)要着重锻炼设计测试样例的能力,我们在考试的使用代码提交上去后当时是没有分数的,得第二天才有,所以我们并不知道我们提交的代码是否能拿满分,这就要我们自己测试好再提交代码。(3)锻炼单步调试能力,在平时编程的时候我们可以使用cout来输出看一下执行过程中变量的值,但是这样容易犯错——考试的使用万一没有把测试用的cout删除,这样就会误导机器判分,机器判断输出和正确输出不一样就是0分。
以上是我们学校李晓鸥老师对我们学院进行CCF复习技巧指导所做的报告总结。之后我会对CCF-CSP真题写一些代码解法分析,我会从最笨的算法写起,并把逐步优化的思路写上。最后会总结一下解题思路技巧,力求整理出来解决这一类问题的方法,最后希望能遇到问题有一定的思路,并在最难的4、5题得到分数,10分也不嫌少。也希望大家多多支持,多多指教。