怎样准备复赛?
1.应该针对自身特点
在时间不多的情况下,应该针对自己的特点来准备。下面是一个简单的自我评估方法
1.你参加过复赛吗?
2.你做过以前的竞赛题吗?(没有做过就在本站下载一份去做嘛!)
3.你知道复赛如何评分吗?
4.在算法十分熟悉的情况下,你平均输入100行代码需要多少时间?
5.你对那类题目最有把握?
6.你对那类题目最头痛?
7.程序编完后,调试成功需要的时间平均是编程时间的几分之几?
8.你满认为正确的程序,结果测试下来有错误的情况有多少?
9.你满认为正确的程序,结果测试下来几乎得0分的情况有多少?
10.你看完题目(包括验证样例数据)的平均时间是多少?
11.从看完题目到脑子里浮现出第一个算法的平均时间是多少?
12.从看完题目到最后决定采用哪种算法的平均时间是多少?
13.从决定算法到开始编码,你会先在做准备工作(eg.写伪代码)吗?需要多少时间?
14.在实现算法的时候突然发现算法是错误的,这种情况有多少?
15.程序编完后测试一些数据后发现算法是错误的,这种情况有多少?
16.程序写着写着写不下去了,因为觉得代码还需要写那么那么多...这种情况有多少?
17.程序写着写着写不下去了,因为不知道下一步该写什么了,这种情况有多少?
18.程序写着写着写不下去了,因为刚刚写过的代码突然看不懂了,这种情况有多少?
19.程序写完了,运行失败,你先静态查错,还是直接调试?
20.调试通一个100行代码的程序,你用的时间平均是多少?
21.调试了一段时间,仍然通不过,不知道该怎么办,这种情况有多少?
22.终于调试通过,竟然是笔误!这种情况是多少?
23.对于竞赛题,你有把握同时通过的程序有几分之几?这种“把握”通常是正确的吗?
24.你测试程序吗?是否只是使用样例数据?
25.测试时死机。这种情况有多少?
26.测试大数据时才发现你的程序效率存在严重问题,这种情况有多少?
27.测试大数据时才发现你的程序空间问题没有解决好,这种情况有多少?
28.测试一个数据失败,调试通以后你是否进行回归测试?
29.一般的题目你会花多少时间测试?
30.做一道简单的复赛题目,你一般需要多少时间?
31.做一道中等难度的复赛题目,你一般需要多少时间?
32.做一道困难的复赛题目,你一般需要多少时间?
33.平时做题你计时吗?
34.想好算法以后,你能较为准确的估计你将花的时间吗?
35.看完题目以后,你选择对于你来说最简单的题目吗?如果是,选择正确(的确比其他题目容易得分)
的时候多吗?
36.对于不会做的题目,你能够想一个方法拿部分分吗?
37.你设计的测试数据和标准测试数据是否比较接近(指测试的方面,不是数据本身)?想一想,这些问题本身也许就可以引起你的思考。
选出你认为最重要的,你又最差的方面集中训练。
2.熟悉复赛的形式,内容和题目的特点
复赛题目的特点是:
第一题:算法比较明显的,或者和数学关系比较大的题目。
第二题:好上手,但程序量要大一点的题目,考虑全面也不容易。
第三题:一般是搜索,或者算法不明显的题目。
算法方面,可能考到的是:搜索(回溯就可以了),动态规划(几乎是必考),贪心,递推(小心真的考到哦),递归...
数据结构反而考得不多。熟悉字符串的操作和排序算法就差不多了。
练习以上内容可以做以前的复赛题或我的模拟题(难度比复赛略高一点)
一个好的方法是练习经典题目。如:8皇后, 汉诺塔, 部分背包问题, FIBONACCI数列, 数字三角形...
还有很多,我一时也想不起很多,主要还是靠平时积累。
3.选择自己最有潜力的方面专攻。
初学者是一般不可能做出所有的题目的,应该选一些自己平时最熟悉和有把握的题,一定要做对。
记住,信息学竞赛最容易出现“一失足成千古恨”的情况。自己熟悉的题目要加强编程熟练度,
准确度,测试和调试能力,把自己有能力拿到的分拿稳。
假如我最近对回溯很有“感觉”,我就应该多编一点回溯的程序,如8皇后,BETSY的旅行,马的周游,
图的着色...把它练熟。