如何评价CCF的CSP认证?

题目难度严重。

四五个问题通常更难(有时超出你的想象),第三个问题有时也更难。一两道题基本都是分题,考个200+应该不难。

300+需要更多的努力,400+对于没有竞赛获奖经验的同学来说应该是不可能的。换句话说,有能力400+的同学,几乎不需要考这个东西来证明自己。

难度和主题法

难度成倍增加:

第一个问题:一般是数值问题(一组整数),可以用for循环解决。比较简单,学完C语言基本就可以打分了。推荐哈工大C语言程序设计的苏晓红,这本书比较高级,会涉及链表操作,对学习数据结构很有帮助。

第二个问题:一般复杂度接近,至少需要两个For循环。对于周期来说,说两个并不难。难点在于,一般是时间序列题,通常是排序,使用多元数据。比如18年3月,第二题撞了一个小球。数轴上有一条长度为L(L为偶数)的线段,左端在原点,右端在坐标L处。

线段上有n个没有体积的小球。开始时所有的球都在偶数坐标,速度方向是对的,速度是1单位长度每秒。

当球到达线段的终点(左端点或右端点)时,会立即向相反的方向运动,速度还是原来的大小。

当两个球碰撞时,两个球会向与原来方向相反的方向运动,继续以原来的速度运动。

现在,我会告诉你线段的长度L,球的个数N,以及N个球的初始位置。请计算t秒后球的位置。-来自ccf-csp的考试问题

它将涉及长度、数量、时间和速度等不同单位的数据。

第三个问题:通常是字符串的处理,一般是复杂文本的处理。在这里,最好使用C++中的string类来做字符串处理。如果要自己用C语言写字符串处理函数,不一定写对,但是会相当麻烦,浪费时间。

第四个问题:一般使用高级的数据结构,比如树和图,需要的算法不是课本上学到的简单算法,而是需要更高级的时空效率更高的算法。

第五题:一般是纯算法题。但是算法难度一般都是ACM级别,所以ACM培养出来的培训师不一定能拿满分。