关于信息学奥林匹克竞赛的若干问题(高中)

来源:百度知道 编辑:UC知道 时间:2024/05/04 08:03:46
我高一刚结束。
由于我们省区(山东)在我们这一届实行高考改革,可能要不分文理。而且复读生对应届生冲击很大。另外国家现在正在加大自主招生名额。
我想参加数学竞赛和信息学竞赛。

下面问几个关于信息学竞赛的问题:
1.我自学过C++,也很想在信息学竞赛中用C++,可以吗?推荐这样吗?
2.如果学C++,用什么辅导材料? 有什么值得推荐的书?
3.如果不学C++……

我高中刚毕业,也是搞信息竞赛的。C++是可以使用的,不过有不少限制,如对STL库的限制等。C++是面向对象的语言,但NOIP完全用不上面向对象的设计思想。对于NOIP这种考算法的比赛来看,学好面向过程的语言才是关键,因为NOIP的考核主要是看算法和数据结构,这正符合面向过程语言的设计思想,而C++的核心是类,是对象,这与NOIP要考的知识相差很大。
如果你已经有了C++的基础,那么完全可以用C++参加NOIP。不过与C和Pascal选手比起来,并没有什么优势。关键还在于对算法和数据结构的积累,以及扎扎实实的练习。
当然,如果你愿意,也可以用C参加竞赛。其实两个是差不多的,只要稍微注意一下竞赛大纲对C++的限制即可。
NOIP常用的书目有《奥赛经典》的基础篇、提高篇、数据结构篇等。最好买详细介绍数据结构和算法的书,这样的书也很多,清华大学出版社的不错。
另外,信息学训练常用的网站:
http://www.vijos.cn
http://www.oibh.org (有所有网站的比赛消息发布等)
http://train.usaco.org
(最后一个是英文的,可以去http://www.nocow.cn/index.php/USACO_Training看着翻译做。)
其他的也非常多。
信息学竞赛也需要大量的做题量。另外要多找老师咨询,弄清楚有关比赛的基本知识。我初中参加普及组比赛时完全不会文件操作,结果0分……
也应该看