首先声明:本帖针对初学者,本帖只是列出一个大概的框架,不属于自学方法,有条件有能力,请找一位好老师来教,多跟前辈交流经验。(否则多会出现事倍功半的悲剧!)
一、初赛内容
初赛偏重于基础知识。
1. 一部分是计算机的基础知识。
计算机基础部分,内容多而杂,多以选择题形式出现,所以不必要花太多时间去背,而是平时多积累,有意识的去记忆,留下印象。内容会包括计算机的特征(硬件和软件)、网络的特征和基本概念、信息的输入输出、信息的表示和处理、新兴应用等。
1. 另一部分是数学内容
范围很广,永远不知道会考到哪一部分的知识点,但试卷包括两道数学题,所以不能忽视。比较重要的大概包括排列、组合、辗转相除法、容斥原理等。
1. 数据结构
数据结构会考基本类型(整型、长整型、浮点型、字符等)和数组。比较容易在初赛中出现的数据类型有树、栈、队列等。树:二叉树、完全树等;栈:先进后出特点;队列:先进先出特点。
1. 最后一部分是程序完成(也就是算法)。
这部分完全是靠你的做题基础,没有捷径,只能靠你平时多做题,掌握简单算法。
下面是小编整理的比较常见的实用算法:
1. 模拟算法
2. 贪心方法
3. 数论算法
4. 图论算法
5. 动态规划(分析:背包问题)
6. 分治算法
7. 搜索算法(fx:暴搜——枚举、打表、加剪枝(剪枝以排序、可行性剪枝和暴力剪枝为主。))
更具体的算法总结,还是去买相关算法书籍来看,再有就是多刷题练手。
1. 语言!
初试形式为笔试,编程使用的语言为pascal、C、 C++中的一种或多种,三种语言在noip中的使用差距并不明显。在掌握算法和数据结构后,换语言如同换衣服。
二、初赛试卷形式
1、选择题:共20题,每题1.5分,共30分。每题有4个备选答案。试题内容包括计算机基本组成与原理、计算机基本操作、信息科技与人类社会发展的关系等等。(普及组为20道单选题,提高组为10道单选题和10道不定项选择题,不定项选择题与答案完全一致才得分,多选或少选均不得分)
2、问题求解题:共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。
3、程序阅读理解题:共4题,每题8分,共32分。题目给出一段程序(没有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。
4、程序完善题:共2题,每题14分,共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分