备战NOIP(初稿).doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
备战NOIP(初稿)

备战NOIP 某菜 著 目录 声明 前言 NOIP初赛 初赛简介 考查范围 试题类型 选择题 填空题 阅读题 完善题 重点突击 计算机基础知识 进制转换 栈和队列 NOIP复赛 (一)复赛简介 (二)考查范围 (三)试题类型 (四)简析NOIP2009安徽省一等奖分数线的划定 (五)关于OJ(Online Judge) (六)重点突击 0、算法复杂度 1、模拟法 2、字符串处理 3、数据结构 4、递归和分治 5、搜索 6、动态规划 7、图论 (七)竞赛技巧 声明 此文仅限在阜阳一中内部传阅,绝对禁止随意外传。 前言 一、NOIP初赛 (一)初赛简介 初赛的作用是检验选手的基本素养,考查选手是否具备进入复赛的资格。初赛一般于每年的10月中下旬进行,地点一般在选手所在市区,考试形式为笔试。 (二)考查范围 具体内容参考《全国青少年信息学奥林匹克联赛大纲》,在此不赘述。会挑选重点内容具体讲述。 (三)试题类型 1、选择题 包括单选题和多选题两部分,常考内容为计算机基础知识、进制转换等,难度一般较低。值得注意的是,与物理多选题不同,多选题多选、少选、错选均不得分(其它学科竞赛也是多半如此)。 2、填空题 比选择题难度略高,有时会考组合计数等数学知识,也会考一些手算运算量不大的算法题,每题分值较高。 3、阅读题 任务是,给出一段程序,程序下面给出一组输入数据,要求你写出输出数据。如果完全模拟计算机计算而去手算的话,一般运算量是很大的。需要尽量理解给出程序执行的任务,进而直接根据输入数据写出输出。当然,如果看不出来,而时间足够、手算准确率高的话,模拟也不失为一种方法。 4、完善题 难度最高的题目,得分率最低。题目中会给出程序要执行的任务和一段缺少了一些语句的程序,要求补写缺少的程序语句,使程序能够正确运行,并得到结果。 (四)重点突击 1、计算机基础知识 说实话,这个纯粹靠背,没有什么技术含量,但确实是必考内容!处理器、数据库……什么都可能涉及到,记得某年还出了一题英文缩写题…… 这个考前突击即可。 2、进制转换 十进制是我们每天都要用到的。给出一串由0、1、2、3、……、9组成的数字,比如“123”,任谁都能读出“一百二十三”,但是你知道这个数字怎么来的吗?给出如下等式: 123=1*10^2+2*10^1+3*10^0 这就是十进制下的“123”,写得更标准一点,是123(10)。 类似的,八进制下的“123”表示为123(8)。 123(8)=1*8^2+2*8^1+3*8^0=83(10) 总结:对于n位m进制的数“an an-1 an-2……a2 a1”,都可以写成下式: an*m^(n-1) + an-1*m^(n-2) + …… +a2*m^1 + a1*m^0 其结果为十进制数。 现以转化为二进制为例,叙述如何将十进制数转化为其它进制数。 对于12(10),转化为二进制的过程如下: 12 / 2 = 6……0 6 / 2 = 3 ……0 3 / 2 = 1 ……1 一直除到最后的商小于2。把最后得到的商和一系列余数倒着串起来,得到1100(2) = 12(10)。 总结:十进制转化为m进制数可以采用“除m取余”的方法。 备注:对于非十进制数转化成另一种非十进制数,可以采用两次转化的方法,即先转化成十进制,之后再次转化。当然二进制转换成八进制、十六进制有特殊方法,但没有上述方法“通用”。 进制转换为每年初赛必考的内容,多在选择题中出现。 3、栈和队列 栈和队列都是一种线性的数据结构。 先简单地叙述一下“结点”的含义:“数据结构中存储的某一个元素为一个结点。” 下面再说“线性”:“除了首结点和尾结点之外的其它结点,都有固定的一个前驱结点和一个后继结点。”形象一点,数组就是一种线性的数据结构,比如一个数组如下: a[] = {2,3,5,1}。2没有前驱结点;1没有后继结点;3的前驱节点为2,后继结点为5。 与一般的数组不同的是,栈和队列不能“随机”地访问其中的元素,尽管如此,在程序的实现上,一般仍采用数组的结构来实现栈和队列,只不过此时的数组是“受限制”的。下面分别叙述栈和队列。 栈,可以想象成一摞书,这摞书不被允许从中间抽取。这样一来,你每次的操作就只有2种:从最上面取走一本;在最上面放上一本。这样就引出了栈的一个重要性质:“后进先出(Last In First Out)”,最后放上去的书一定被最先取出来。 如果用一个数组a[]实现一个栈,栈中的元素是数字的话,一开始a[]为空。之后1被入栈,此时a[]={1};之后3、2依次入栈,此时a[]={1,3,2};如果这时候要让一个元素出栈的话,那么出栈的元素为2(2最后入栈)。 队列,可以想象出一幅画面,n个人在超市排队付账,此时先排队的人一定先付完账(在此假定所有人都很有素质

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档