noip2007 排列组合

noip初赛复习资料(全)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
218页免费20页免费70页免费23页免费30页免费 12页免费20页免费30页免费70页2下载券33页1下载券
喜欢此文档的还喜欢56页免费
noip初赛复习资料(全)|n​o​i​p​初​赛​复​习​资​料​(​全​)
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢参加高中组NOIP考试应有什么准备_百度知道
参加高中组NOIP考试应有什么准备
想了解一下,会考二叉树、八皇后等问题吗,初赛考什么具体内容
提问者采纳
每次联赛的试题分四组,共计30分. 记录类型(PASCAL)&#47:共2题.5分、互联网络;复赛,并对知识面的广度进行测试,共计10分,团队精神与合作能力. 算法的实现能力2;●
中学教师需所在单位同意或省奥赛主管部门同意、程序;否则不得分. 阅读理解程序的基本能力3、普级组复赛题A2;C++。每一试题包括。●
复试形式为上机,数学抽象能力,测试程序为每道题提供了5-10组测试数据。经复审确认后,并推算出问题的解、总则
由中国计算机学会负责组织的全国青少年信息学奥林匹克联赛(NOIP)是全国信息学奥林匹克竞赛(NOI)整个系列中的一个重要组成部分. 排序算法(冒泡法。2、长整数,2003仍允许BASIC)基本算法处理 1。●
题目一经提交,后10题为不定项选择题(即每题有1至5个正确答案。3。比赛中使用的程序设计语言是. 结构化程序设计的基本概念2、电子邮件收发等)程序设计的基本知识 数据结构 1,试题原型一旦被正式采用,同时对计算机的普及内容起着导向性的作用,各省必须在指定时间内将本省一等奖候选人的有关情况,并承担对所提供的题目保密的责任:初赛,提高他们创造性地运用程序设计知识解决实际问题的能力,在9月1日之前提交科学委员会. 常用的工具软件使用(文字编辑:数据结构 1;否则不得分。●
搜集本省信息学奥赛的有关信息并向科学委员会通报:初赛、二分法)4:●
想象力与创造力. 信息的表示与处理(信息编码、插入排序,每题100分. 回溯算法(二)复赛内容与要求、数据库管理)5. 联赛命题委员会委员应具备如下资格,命题委员会成员主要来自参加联赛的省(包括直辖市,累计分即为该道题的得分、新应用等,则得分. 具有针对模型设计简单算法的基本能力5. 人机交互界面的基本概念(窗口系统:BASIC,找到一个合适的算法;C++. 信息技术的新发展、快速排序)3,考生程序每答对一组得10-20分,坚持开放和规范的原则,也可能直接命题;●
数学能力和逻辑思维能力,则得分、WEB应用的主要方式和特点)6、指令。中国计算机学会对各省获NOIP二等奖和三等奖的分数线或比例提出指导性意见、搜索和查询等)3. 模拟法4、合并排序,共计28分。命题应注重趣味性;C++。试题由四部分组成;复赛、自治区. 信息输入输出基本原理(信息交换环境. 联赛命题委员会委员的产生过程,前10个题为单选题(即每题有且只有一个正确答案. 计算机和信息社会(信息社会的主要特征。计算机基本的操作 1、整数. 信息系统组成及互连网的基本知识(计算机构成原理。题目包括4道题,选对得分):●
2003年。在NOI科学委员会主持下成立的联赛命题委员会负责命题工作. 文件操作(从文本文件中读入数据、存储器结构,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格。考生给出的答案与标准答案相同,每题5分:共2题;IP协议,审美能力等。试题给出一个叙述较为简单的问题。联赛命题委员会的主要职责是提供联赛的备选题目,并输出到文本文件中)程序设计 1. 单链表及循环链表4。1,每题14分、PASCAL或C&#47:BASIC、输入输出要求。各省联赛的等第奖在复试的优胜者中产生;复赛,和存储程序原理,要求学生对问题进行分析、层次式的互连结构,A2和B2类型相同。填对则得分,各省初试成绩在本赛区前15%的学生进入复赛。3、想象力和创造性等、微处理部件MPU. 信息的存储、源程序和可执行程序报送科学委员会、新特点;C&#47、计算机的主要特征:BASIC、浮点)2、应用性和中学生的心智特点;C++. 选择题,填出被略去的语句、人和计算机交流信息的途径(文件及交互操作))7. 简单搜索算法(深度优先 广度优先)搜索中的剪枝6,这些试题可能从备选题库中选取并做适当修改后成型、数字化)2、PASCAL或C&#47:●
每年为NOIP提供备选题题目若干、PASCAL或C&#47. 程序流程描述(自然语言&#47、问题描述、简单图论:计算机基本的常识 1,从日起执行. 查找(顺序查找。四:题目。五. 问题求解题:普及组和提高组,培养计算机科学和工程领域的后备人才. WINDOWS和LINUX的基本操作知识2。题目给出一段关于程序功能的文字说明,但难度比NOI低. 分治思想3,每题8分;否则不得分。每个省最多派一名委员),试题版权均归中国计算机学会所有;●
对问题的理解和分析能力。输出与标准答案一致,旨在向中学生普及计算机基础知识。●
2005年及之后;结构类型(C)程序设计 1: PASCAL或C&#47,包括使用。●
备选试题的保密期为2年。题目给出一段程序(不一定有关于程序功能的说明)、数字通信网络的主要特征、样例描述及相关说明,全部为上机编程题. 一维数组(串)与线性表4,由中国计算机学会颁发聘书(每一聘期为两年),恒心和毅力,只有全部选对才得分). 浮点运算中的精度和数值比较3. 程序的时间复杂度和空间复杂度的估计算法处理 1;●
对此项工作有兴趣并愿意作为志愿者从事NOIP命题及其相关工作、组织与管理(存储介质、文件管理:PASCAL或C&#47、数理逻辑)2。2,提高组难度高于普及组:本大纲由中国计算机学会NOI科学委员会制定和修订. 联赛命题委员会委员的职责,A1和B1类型相同。对学生的能力培养将注重以下的几个方面:●
从事一线计算机教学或信息学奥赛辅导工作两年(含)以上。在命题和审题工作中。科学委员会确定当年的联赛试题. 程序设计语言(PASCAL&#47:●
本人提出申请(填写表格),共计400分. 程序完善题,各省可按照成绩确定获奖名单,满分100分、修改和出版,使得他们对信息技术的一些核心内容有更多的了解。
每年复赛结束后;NS图&#47、程序的三种基本控制结构)4。测试时,即表明同意授权中国计算机学会科学委员会全权处理. 动态规划的思想及基本算法注:共20题,每题1、文字图形多媒体信息的输入输出方式)3、内存储结构。●
初试形式为笔试:PASCAL或C/伪码&#47。初试为资格测试。二,培养学生学习计算机的兴趣。三. 程序调试基本能力3。无论是委员提交的题目还是科学委员会直接提交的题目. 程序阅读理解题;●
科学委员会批准. 具有将简单问题抽象成适合计算机解决的模型的基本能力4;其他)6. 贪心法5,不直接从大学专业教材中选题,着重考察学生对问题的分析理解能力,共计32分、下同:共4题;C++。其中. 多维数组3全国青少年信息学奥林匹克联赛大纲(节选)一。本大纲于日科学委员会审议通过,测重考察学生的计算机基础知识和编程的基本能力。4。每组竞赛分两轮:复赛的题型和考试形与NOI类似,由中国计算机学会报送中国科协和教育部备案;●
有精力和时间从事该项工作。每题有5个备选答案. 程序语言中基本数据类型(字符;C++,在该段时间内不得泄密或另作他用:初赛全部为笔试. 指针类型2、命题程序和组织机构
命题是选拔过程的重要一环;●
对客观问题和主观思维的口头和书面表达能力. 二叉树5、统计:初赛. 设计测试数据的基本能力4,要求考生根据程序的功能说明和代码的上下文. 离散数学知识的应用(如排列组合:包括与人的沟通能力。普及的重点是根据中学生的特点;●
人文精神:在初赛的内容个增加以下内容、竞赛形式和成绩评定联赛分两个等级组、新颖性:1,考生通过阅读理解该段程序给出程序的输出、知识性,编程语言的能力和编程技巧,中国计算机学会将出具试题录用证明:普及组初赛题A1. 初等算法(计数;初试和复试、槽和端口的部件间可扩展互连方式,也可来自社会计算机界、TCP&#47,并由其负责解释、提高组初赛题B1和提高组复赛题B2,但题目不完全相同、数学运算等)2、HTTP协议、试题的知识范围(一) 初赛内容与要求;C++. 互联网的基本使用常识(网上的浏览,然后给出一段程序代码
其他2条回答
我有一个电子文稿,是关于初赛的,很全。如果想要,给我你的EMAIL.我发给你。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁加载中,请稍候...
加载中,请稍候...
京 东 价:
¥75.50 [8.2折][定价:¥93.00]
温馨提示:
其它类似商品
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
算法竞赛入门经典+算法设计编程实验(京东套装共2册)
查找同类商品
  《算法艺术与信息学竞赛:算法竞赛入门经典》  《算法艺术与信息学竞赛:算法竞赛入门经典》分为三部分:语言篇、算法篇和竞赛篇。首先以实践导向的方式讲解了C/C++的基本语法,然后介绍了算法和数据结构的基础知识,最后是动态规划、数学和图论三大专题。全书短小精悍,但内容全面,既可作为教材,又方便自学。  算法在计算机科学乃至于整个科学界的作用日益明显。它们不仅具有重要的理论意义,而且解决了生产生活中的很多实际问题。程序设计竞赛就是这样一类以算法为核心但是偏重实用性的比赛。随着各类比赛规模的逐渐扩大,程序设计竞赛在各高校、IT公司和其他社会各界中越来越受到认可和重视。很多研究工作者和从事IT行业的人尽管不参加这类竞赛,但也希望具有这方面的能力,受到这方面的专业训练。  本丛书的前身是5年前的同名图书《算法艺术与信息学竞赛:算法竞赛入门经典》。5年来,更多的人加入到参赛、命题和组织的队伍中来,各类竞赛的参赛和命题水平也有了长足的进步。作者深知当年的经典之作开始显得题目陈旧,知识的广度和深度也无法达到当今高水平比赛的要求了。因此,将原书的内容扩充、完善后分成三本,以丛书的形式依次展现给读者。这三本书循序渐进,从零语言基础开始讲起,直到超越竞赛本身,真正把算法当成“艺术”。  适合语言零基础的初学者  涵盖算法竞赛的主要知识点  大量经验教训与比赛技巧  简洁、清晰、高效的示例代码  丰富的辅助教学资源与配套习题
  《大学程序设计课程与竞赛训练教材:算法设计编程实验》  以知识体系结构、思维方式与解题策略为主线,分8章分别介绍AdHoc、模拟法、数论、组合分析、贪心法、动态规划方法、高级数据结构、计算几何的编程实验。每个章节由实验范例和题库两个部分组成,试题全部选自ACM国际大学生程序设计竞赛以及其他各类程序设计竞赛,共234题(3题为一题多解),并给出了试题来源和在线测试地址。每个实验范例都有详尽的试题解析和标有注释的参考程序,而题库中的所有试题无论难易,都有清晰的提示。另外,华章网站中还给出了《大学程序设计课程与竞赛训练教材:算法设计编程实验》所有试题的英文原版描述和大部分试题的测试数据。  《大学程序设计课程与竞赛训练教材:算法设计编程实验》既可以作为大专院校计算机专业算法课程的教材,也可以作为计算机专业学生的研修资料和程序设计竞赛的培训教材。  《算法艺术与信息学竞赛:算法竞赛入门经典》  《算法艺术与信息学竞赛:算法竞赛入门经典》是一本算法竞赛的入门教材,把C/C++语言、算法和解题有机地结合在了一起,淡化理论,注重学习方法和实践技巧。《算法艺术与信息学竞赛:算法竞赛入门经典》内容分为11章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、基础题目选解、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法,覆盖了算法竞赛入门所需的主要知识点,并附有大量习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧。另外,书中包含的各种开发、测试和调试技巧也是在传统的语言、算法类书籍中难以见到的。  《算法艺术与信息学竞赛:算法竞赛入门经典》可作为全国青少年信息学奥林匹克联赛(NOIP)的复赛教材及ACM国际大学。
  刘汝佳,1982年12月生,高中毕业于重庆市外国语学校。  2000年3月获得NO12000全国青少年信息学奥林匹克竞赛一等奖第四名,进入国家集训队,并因此保送到清华大学计算机科学与技术系。大一时获2001年ACM/ICPC国际大学生程序设计竞赛亚洲一上海赛区冠军和2002年世界总决赛银牌(世界第四),2005年获学士学位,2008年获硕士学位。  学生时代曾为中国计算机学会NOI科学委员会学生委员,担任J8中国国家队教练,并为NOI系列比赛命题十余道。现为NOI竞赛委员会委员,并在NOI
25周年时获得中国计算机学会颁发的“特别贡献奖”。  2004年至今共为ACM/ICPC亚洲赛区命题二十余道,担任6次裁判和2次命题总监,并应邀参加IOI和ACM/lCPC相关国际研讨会,发表论文两篇。  2004年初作为第一作者出版专著《算法艺术与信息学竞赛》,2009年出版译著《编程挑战》。  多年来在全国二十余个城市进行中学生竞赛培训工作,为北京、上海、吉隆坡等地的著名高校授课与宣讲,并多次与TopCodet、百度和网易有道等知名企业合作举办比赛,让更多的IT人才获得展示自我的平台。
《大学程序设计课程与竞赛训练教材:算法设计编程实验》前言第1章 求解Ad Hoc类问题的编程实验1.1 机理分析法的实验范例1.2 统计分析法的实验范例1.3 相关题库第2章 模拟法的编程实验2.1 直叙式模拟的实验范例2.2 筛选法模拟的实验范例2.3 构造法模拟的实验范例2.4 相关题库第3章 数论的编程实验3.1 素数运算的实验范例3.1.1 使用筛法生成素数的实验范例3.1.2 测试大素数的实验范例3.2 求解不定方程和同余方程的实验范例3.2.1 计算最大公约数和不定方程3.2.2 计算同余方程和同余方程组3.3 积性函数的实验范例3.3.1 使用欧拉函数φ(n)计算与n互质的正整数个数3.3.2 使用莫比乌斯函数μ(n)计算非平方数n的质因子个数3.4 相关题库第4章 组合分析的编程实验4.1 生成排列组合的实验范例4.1.1 按字典序思想生成下一排列组合4.1.2 按字典序思想生成所有的排列组合4.2 排列组合计数的实验范例4.2.1 一般的排列组合计数公式4.2.2 两种特殊的排列组合计数公式4.3 容斥原理与抽屉原理的实验范例4.3.1 利用抽屉原理求解存在性问题4.3.2 利用容斥原理对并集计数4.4 波利亚定理的实验范例4.4.1 波利亚定理的概念基础4.4.2 利用波利亚定理计算集合在置换群作用下产生的等价类个数4.5 相关题库第5章 贪心法的编程实验5.1 体验贪心法内涵的实验范例5.2 利用数据有序化进行贪心选择的实验范例5.3 在综合性的P类问题中使用贪心法的实验范例5.4 相关题库第6章 动态规划(DP)方法的编程实验6.1 线性DP的实验范例6.1.1 初步体验线性DP问题6.1.2 子集和问题6.1.3 最长公共子序列问题6.1.4 最长递增子序列问题6.2 树形DP的实验范例6.3 状态压缩DP的实验范例6.4 单调优化1D/1D DP的实验范例6.4.1 经典模型1:利用决策代价函数w的单调性优化6.4.2 经典模型2:利用决策区间下界的单调性优化6.4.3 经典模型3:利用最优决策点的凸性优化6.5 相关题库第7章 高级数据结构的编程实验7.1 后缀数组的实验范例7.1.1 使用倍增算法计算名次数组和后缀数组7.1.2 计算最长公共前缀7.1.3 后缀数组的应用7.2 线段树的实验范例7.2.1 线段树的基本概念和基本操作7.2.2 线段树单点更新的维护7.2.3 线段树子区间更新的维护7.3 处理特殊图的实验范例7.3.1 计算欧拉图7.3.2 计算哈密尔顿图7.3.3 计算最大独立集7.3.4 计算割点、桥和双连通分支7.4 相关题库第8章 计算几何的编程实验8.1 点线面运算的实验范例8.1.1 计算点积和叉积8.1.2 计算线段交8.1.3 利用欧拉公式计算多面体8.2 利用扫描线算法计算矩形的面积并8.2.1 沿垂直方向计算矩形的面积并8.2.2 沿水平方向计算矩形的面积并8.3 计算半平面交的实验范例8.3.1 计算半平面交的联机算法8.3.2 利用极角计算半平面交的算法8.4 计算凸包和旋转卡壳的实验范例8.4.1 计算凸包8.4.2 旋转卡壳实验8.5 相关题库……《算法艺术与信息学竞赛:算法竞赛入门经典》第1部分 语言篇第1章 程序设计入门1.1 算术表达式1.2 变量及其输入1.3 顺序结构程序设计1.4 分支结构程序设计1.5 小结与习题1.5.1 数据类型实验1.5.2 scanf输入格式实验1.5.3 printf语句输出实验1.5.4 测测你的实践能力1.5.5 小结1.5.6 上机练习第2章 循环结构程序设计2.1 for循环2.2 循环结构程序设计2.3 文件操作2.4 小结与习题2.4.1 输出技巧2.4.2 浮点数陷阱2.4.3 64位整数2.4.4 C++中的输入输出2.4.5 小结2.4.6 上机练习第3章 数组和字符串3.1 数组3.2 字符数组3.3 最长回文子串3.4 小结与习题3.4.1 必要的存储量3.4.2 用ASCII编码表示字符3.4.3 补码表示法3.4.4 重新实现库函数3.4.5 字符串处理的常见问题3.4.6 关于输入输出3.4.7 I/O的效率3.4.8 小结3.4.9 上机练习第4章 函数和递归4.1 数学函数4.1.1 简单函数的编写4.1.2 使用结构体的函数4.1.3 应用举例4.2 地址和指针4.2.1 变量交换4.2.2 调用栈4.2.3 用指针实现变量交换4.2.4 初学者易犯的错误4.3 递归4.3.1 递归定义4.3.2 递归函数4.3.3 C语言对递归的支持4.3.4 段错误与栈溢出4.4 本章小结4.4.1 小问题集锦4.4.2 小结第2部分 算法篇第5章 基础题目选解5.1 字符串5.1.1 WERTYU5.1.2 TeX括号5.1.3 周期串5.2 高精度运算5.2.1 小学生算术5.2.2 阶乘的精确值5.2.3 高精度运算类bign5.2.4 重载bign的常用运算符5.3 排序与检索5.3.1 6174问题5.3.2 字母重排5.4 数学基础5.4.1 Cantor的数表5.4.2 因子和阶乘5.4.3 果园里的树5.4.4 多少块土地5.5 训练参考5.5.1 黑盒测试5.5.2 在线评测系统5.5.3 推荐题目第6章 数据结构基础6.1 栈和队列6.1.1 卡片游戏6.1.2 铁轨6.2 链表6.2.1 初步分析6.2.2 链式结构6.2.3 对比测试6.2.4 随机数发生器6.3 二叉树6.3.1 小球下落6.3.2 层次遍历6.3.3 二叉树重建6.4 图6.4.1 黑白图像6.4.2 走迷宫6.4.3 拓扑排序6.4.4 欧拉回路6.5 训练参考第7章 暴力求解法7.1 简单枚举7.1.1 除法7.1.2 最大乘积7.1.3 分数拆分7.1.4 双基回文数7.2 枚举排列7.2.1 生成1~n的排列7.2.2 生成可重集的排列7.2.3 解答树7.2.4 下一个排列7.3 子集生成7.3.1 增量构造法7.3.2 位向量法7.3.3 二进制法7.4 回溯法7.4.1 八皇后问题7.4.2 素数环7.4.3 困难的串7.4.4 带宽7.5 隐式图搜索7.5.1 隐式树的遍历7.5.2 一般隐式图的遍历7.5.3 八数码问题7.5.4 结点查找表7.6 训练参考第8章 高效算法设计8.1 算法分析初步8.1.1 渐进时间复杂度8.1.2 上界分析8.1.3 分治法8.1.4 正确对待算法分析结果8.2 再谈排序与检索8.2.1 归并排序8.2.2 快速排序8.2.3 二分查找8.3 递归与分治8.3.1 棋盘覆盖问题8.3.2 循环日程表问题8.3.3 巨人与鬼8.3.4 非线性方程求根8.3.5 最大值最小化8.4 贪心法8.4.1 最优装载问题8.4.2 部分背包问题8.4.3 乘船问题8.4.4 选择不相交区间8.4.5 区间选点问题8.4.6 区间覆盖问题8.4.7 Huffman编码8.5 训练参考第3部分 竞赛篇第9章 动态规划初步9.1 数字三角形9.1.1 问题描述与状态定义9.1.2 记忆化搜索与递推9.2 DAG上的动态规划9.2.1 DAG模型9.2.2 最长路及其字典序9.2.3 固定终点的最长路和最短路9.3 0-1背包问题9.3.1 多阶段决策问题9.3.2 规划方向9.3.3 滚动数组9.4 递归结构中的动态规划9.4.1 表达式上的动态规划9.4.2 凸多边形上的动态规划9.4.3 树上的动态规划9.5 集合上的动态规划9.5.1 状态及其转移9.5.2 隐含的阶段9.6 训练参考第10章 数学概念与方法10.1 数论初步10.1.1 除法表达式10.1.2 无平方因子的数10.1.3 直线上的点10.1.4 同余与模算术10.2 排列与组合10.2.1 杨辉三角与二项式定理10.2.2 数论中的计数问题10.2.3 编码与解码10.2.4 离散概率初步10.3 递推关系10.3.1 汉诺塔10.3.2 Fibonacci数列10.3.3 Catalan数10.3.4 危险的组合10.3.5 统计n-k特殊集的数目10.4 训练参考第11章 图论模型与算法11.1 再谈树11.1.1 无根树转有根树11.1.2 表达式树11.1.3 最小生成树11.1.4 并查集11.2 最短路问题11.2.1 Dijkstra算法11.2.2 稀疏图的邻接表11.2.3 使用优先队列的Dijkstra算法11.2.4 Bellman-Ford算法11.2.5 Floyd算法11.3 网络流初步11.3.1 最大流问题11.3.2 增广路算法11.3.3 最小割最大流定理11.3.4 最小费用最大流问题11.4 进一步学习的参考11.4.1 编程语言11.4.2 数据结构11.4.3 算法设计11.4.4 数学11.4.5 参赛指南11.5 训练参考附录A 开发环境与方法A.1 命令行A.1.1 文件系统A.1.2 进程A.1.3 程序的执行A.1.4 重定向和管道A.1.5 常见命令A.2 操作系统脚本编程入门A.2.1 Windows下的批处理A.2.2 Linux下的Bash脚本A.2.3 再谈随机数A.3 编译器和调试器A.3.1 gcc的安装和测试A.3.2 常见编译选项A.3.3 gdb简介A.3.4 gdb的高级功能A.4 浅谈IDE
  《算法艺术与信息学竞赛:算法竞赛入门经典》  本章介绍一些常见的图论模型和算法,包括最小生成树、单源最短路、每对结点的最短路、最大流、最小费用最大流等。限于篇幅,很多算法都没有给出完整的正确性证明(很容易在其他参考资料中找到相关内容),但给出了简单、易懂的完整代码,方便读者参考。  在第6章中,我们第一次接触到二叉树;后来,又接触到了其他树状结构,如解答树、BFS树。本节将继续讨论“树”这一话题。  有,?个顶点的树具有以下3个特点:连通、不含圈、恰好包含n-1条边。有意思的是,具备上述3个特点中的任意两个,就可以推导出第3个,有兴趣的读者不妨试着证明一下。  1 1.1.1无根树转有根树  输入一个,z个结点的无根树的各条边,并指定一个根结点,要求把该树转化为有根树,输出各个结点的父亲编号。  ……
  《算法艺术与信息学竞赛:算法竞赛入门经典》  “听说你最近在写一本关于算法竞赛入门的书?”朋友问我。  “是的。”我微笑道。  “这是怎样的一本书呢?”朋友很好奇。  “C语言、算法和题解。”我回答。  “什么?几样东西混着吗?”朋友很吃惊。  “对。”我笑了,“这是我思考许久后做出的决定。”  大学之前的我  12年前,当我翻开Sam
A.Abolrous所著《C语言三日通》的第一页时,我不会想到自己会有机会编写一本讲解C语言的书籍。当时,我真的只花了3天就学完了这本书,并且自信满满:“我学会C语言啦!我要用它写出各种有趣、有用的程序!”但渐渐地,我认识到了:虽然浅显易懂,但书中的内容只是语言入门,离实际应用还有较大差距,就好比小学生学会造句以后还要下很大功夫才能写出像样的作文。  第二本对我影响很大的书是Sun公司的Peter
Linden(PvdL)所著的《C程序设计奥秘》。作者称该书应该是每一个程序员“在C语言方面的第二本书”,因为“书中绝大部分内容、技巧和技术在其他任何书中都找不到”。原先我只是把自己当成是程序员,但在阅读的过程中,我开始渐渐了解到硬件设计者、编译程序开发者、操作系统编写者和标准制定者是怎么想的。继续的阅读增强了我的领悟:要学好C语言,绝非熟悉语法和语义这么简单。  后来,我自学了数据结构,懂得了编程处理数据的基本原则和方法,然后又学习了8086汇编语言,甚至曾没日没夜地用SoftICE调试《仙剑奇侠传》,并把学到的技巧运用到自己开发的游戏引擎中。再后来,我通过《电脑爱好者》杂志上的一则不起眼的广告了解到了全国信息学奥林匹克联赛(当时称为分区联赛,NOIP是后来的称谓)。“学了这么久编程,要不参加个比赛试试?”想到这里,我拉着学校里另外一个自学编程的同学,找老师带我们参加了1997年的联赛――在这之前,学校并不知道有这个比赛。凭借自己的数学功底和对计算机的认识,我在初赛(笔试)中获得全市第二的成绩,进入了复赛(上机)。可我的上机编程比赛的结果是“惨烈”的:第一题有一个测试点超过了整数的表示范围;第二题看漏了一个条件,一分都没得;第三题使用了穷举法,全部超时。考完之后我原以为能得满分的,结果却只得了100分中的20多分,名落孙山。  痛定思痛,我开始反思这个比赛。一个偶然的机会,我拿到了一本联赛培训教材。书上说,比赛的核心是算法(Algorithm),并且推荐使用Pascal语言,因为它适合描述算法。我从别人那里复制来了Turbo
7.0(那时网络并不发达),开始研究起来。由于先学的是C语言,所以我刚开始学习Pascal时感到有些不习惯:赋值不是“=”而是“:=”,简洁的花括号变成了累赘的begin和end,if之后要加个then,而且和else之间不允许写分号……但很快我就发现,这些都不是本质问题。在编写竞赛题的程序时,我并不会用到太多的高级语法。Pascal的语法虽然稍微乱坏悖芴謇此凳呛芮逦摹>驼庋抑换瞬坏揭惶焓奔渚桶延锓ㄏ肮叽C转到了Pascal,剩下的知识就是在不断编程中慢慢地学习和熟练――学习C语言的过程是痛苦的,但收益也是巨大的,“轻松转到Pascal”只是其中一个小小的例子。  我学习计算机,从一开始就不是为了参加竞赛,因此,在编写算法程序之余,我几乎总是使用熟悉的C语言,有时还会用点汇编,并没有觉得有何不妥。随着编写应用程序的经验逐渐丰富,我开始庆幸自己先学的是C语言――在我购买的各类技术书籍中,几乎全部使用的是C语言而不是Pascal语言,尽管偶尔有用Delphi的文章,但这种语言似乎除了构建漂亮的界面比较方便之外,并没有太多的“技术含量”。我始终保持着对C语言的熟悉,而事实证明这对我的职业生涯发挥了巨大的作用。
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
七日畅销榜
新书热卖榜

我要回帖

更多关于 noip2007 的文章

 

随机推荐