一、题型篇
CCF考试历时4个小时,5个编程大题,每题100分,下面,先让我们来了解一下它的题型大体是怎么样的吧。
1.暴力破解题。
第一题还是给大家看到了自己能得高分的希望滴(虽然不知道后面会不会很难- -),常见的出题方式是给定一个总数n,第二行给定n个数,让大家暴力去破解一下这个题目,得出答案即可。要注意的是,再提交自己的代码前一定要仔细测试,找出其中的临界点和易错点哦。给出其中一些典型题目的链接。
2.S T L容器模拟大题。
第二题开始就到了真正考验大家的时候了,一般情况下也是一道模拟题目,给定一些数据和操作,要求大家实现这个模拟的过程。第二题也没有用到过很难很难的算法,各位小伙伴必须要把心态放好。大体思路如下:
(1)选好存储结构,理清题意。
(2)问题分解,逐步解决。
(3)能暴力a尽量暴力a,不要为了追求代码的简洁忽略实际操作难度。
(4)一定要注意数组中的越界,变量的命名和使用,在for循环以及矩阵类型的题目中极易出错。
(5)书写的逻辑出现错误
如:找到一个数组中位置在最右下的元素:
看下面的代码:
for(int i=0; i<4; i++)
for(int j=0; j<4; j++) {
scanf("%d",&picture[i][j]);
if(picture[i][j]!=0) {
if(i>i_max&&j_i_max)
{
i_max=i;//i_max和j_max用来存储最右下角的矩阵的位置
j_max=j;
}
}
}
乍一看是不是觉得好像就是这样?但是我们看,如果初始时 i_max=2,j_max=3,
这时候过来一个元素i=2,j=3,那么这个i_max,j_max会被改变吗?NO!建议大家写完代码后,多质疑一下自己逻辑思路的正确性,多测试一下自己的代码。
3.String类型模拟题。
这是CCF恶心题目的开端,真的感觉出题人要带我们体验一下人生的大气大落--|||。
话不多说,先上思路:
(1)存储结构,存储结构,存储结构,这个真的很重要!!!简单才最美丽。
较难的有,多层结构体嵌套操作。
(2)读取常用操作。
getline(cin,str)//读取一行string类型
gets(str)//读取一行,char[]类型
cin>>str//碰到空格即结束读取
(3)注意字符数组的越界。
(4)string和char的类型并不兼容,不要用混。
4.图论。
图论类型的题目真的还是比较区分人的,你要问楼主是怎么知道的,我可以很骄傲的告诉你,我就是那个被筛出去的人,呜呜。
思路:
(1)审题,理清题意,选好存储结构,一般图论题用多维vector数组配合结构体存储。
(2)想清楚题目的考点,一般的考点有:
最小生成树、迪杰斯特拉算符,并查集,DFS,BFS暴力搜图等。理清考点后,才比较容易下手。
(3)注意多维数组的使用,一维不行用二维,二维不行用三维,特别是涉及到的元素比较多的时候,思路应该多往这边靠。
5.容易犯错误的地方。
(1)提交前一定检查是否有编译错误。
(2)是否有越界的情况,这会导致运行出错。
(3)实在不会写的题目,可以尝试暴力A题,即使答案不可能全对,也可以得分。
就这样~