了解信息学奥赛_第1页
了解信息学奥赛_第2页
了解信息学奥赛_第3页
了解信息学奥赛_第4页
了解信息学奥赛_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces简称NOIP)自1995年至今已举办16次。每年由中国计算机学会统一组织。 NOIP在同一时间、不同地点以各省市为单位由特派员组织。全国统一大纲、统一试卷。初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段。初赛考察通用和实用的计算机科学知识,以笔试为主。复赛为程序设计,须在计算机上调试完成。参加初赛者须达到一定分数线后才有资格参加复赛。联赛分普及组和提高组两个组别,难度不同,分别面向初中和高中阶段的学生。NOIP简介何林同学给吴文虎教授的一封信何林同学

2、给吴文虎教授的一封信摘录摘录如果有人问我,这五年的信息学生涯教会了我什么,我不会说“我会用平衡二叉树”、也不会说“我学懂了动态规划”。我不管学到多少,总还有很多没学到;即便是学会了的东西,长时间不用也会遗忘。我认为我真正学到的是习惯、态度和方法。我学会了批判性的看问题、我学会了用开阔的胸怀去接受所有不同的想法、我学会了分析问题、总结问题、乃至提出问题的一系列方法和经验。这些才是无价之宝,是一辈子在任何地方任何时候都不会丢的宝贝。 1232131+2=3条1+2+3=6条1+2+3+4=10条这里我们还可以进一步思考,j这个变量的类型是长整型,当n的值足够大时,j的存储范围就不够大了,我们要用一

3、个数组去存储一个大的数值,即使用高精度。 万位 千位 百位 十位 个位an. a5 a4 a3 a2 a11、x:=a1+I,然后处理进位和余数。变量x代表当前位总和while x0 do begin w := w+1; aw := x mod 10; x:= aw+1+x div 10; end;program ex1-3;Var i,w,n : longint; a : array1.100 of longint;procedure jia(k : longint);Var j,x : longint;begin x := a1+k; w := 0; while x0 do begin w

4、 := w+1; aw := x mod 10; x:= aw+1+x div 10; end; end;主程序:begin readln(n); w := 1; for i := 1 to n do jia(i); for i := w downto 1 do write(ai); writeln;end.【例【例2】蜜蜂路线蜜蜂路线(bee.pas)【问题描述】【问题描述】 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,MC; (2)当N=2时,则需要移动三次: A- 1 - B, A - 2 - C, B - 1-

5、 C. (3)如果N=3,则具体移动步骤为: 假设把第3步,第4步,第7步抽出来就相当于N=2的情况(把上面2片捆在一起,视为一片): 程序定义了把n片从A柱移到C柱的过程mov (n,a,c,b),这个过程把移动分为以下三步来进行: 先调用过程mov (n-1, a, b, c),把(n-1)片从A柱移到B柱, C柱作为过渡柱; 直接执行 writeln(a, -, c),把A柱上剩下的一片直接移到C柱上,; 调用mov (n-1,b,c,a),把B柱上的(n-1)片从B移到C柱上,A柱是过渡柱。 对于B柱上的(n-1)片如何移到,仍然调用上述的三步。只是把(n-1)当成了n,每调用一次,要

6、移到目标柱上的片数N就减少了一片,直至减少到n=0时就退出,不再调用。exit是退出指令,执行该指令能在循环或递归调用过程中一下子全部退出来。 mov过程中出现了自己调用自己的情况,在Pascal中称为递归调用,这是Pascal语言的一个特色。 所以可按“N=2”的移动步骤设计: 如果N=0,则退出,即结束程序;否则继续往下执行; 用C柱作为协助过渡,将A柱上的(N-1)片移到B柱上,调用过程mov(n-1, a,b,c); 将A柱上剩下的一片直接移到C柱上; 用A柱作为协助过渡,将B柱上的(N-1)移到C柱上,调用过程mov (n-1,b,c,a)。【参考程序】【参考程序】Program ex4_3;Var x,y,z : char; N, k : integer;Procedure mov (n: integer; a, c , b: char);begin if n=0 then exit; /如果如果N=0,则退出,即结束程序,则退出,即结束程序 mov (n-1, a,b,c); /用用C柱作为协助过渡,将柱作为协助过渡,将A柱上的(柱上的(N-1)片移到)片移到B柱上柱上 inc(k); writeln(k, : from, a, -, c); mov (n-1,b,c,a); /用用A柱作为协助过渡

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论