资源描述:
《第十一届全国青少年奥林匹克信息学联赛复赛普及组试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一届全国青少年奥林匹克信息学联赛复赛普及组试题及答案陶陶摘苹果(apple.pas/c/cpp)【问题描述】陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。【输入文件】输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹
2、果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。【输出文件】输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。【样例输入】100200150140129134167198200111110【样例输出】5[参考程序]题目讲解:简单的循环和文件操作的考察,和去年“不高兴的晶晶”有相似之处,但是比那一道题目简单。programapple(input,output);varapp:array[1..10]ofinteg
3、er;f1,f2:text;i,j,n:integer;beginassign(f1,'apple.in');assign(f2,'apple.out');reset(f1);rewrite(f2);fori:=1to10doread(f1,app);read(f1,n);j:=0;fori:=1to10do ifapp<=n+30thenj:=j+1;writeln(f2,j);close(f1);close(f2);end.校门外的树(tree.pas/c/cpp)【问题描述】某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一
4、个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。【输入文件】输入文件tree.in的第一行有两个整数L(1<=L<=10000)和M(1<=M<=100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个
5、空格隔开,表示一个区域的起始点和终止点的坐标。【输出文件】输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。【样例输入】5003150300100200470471【样例输出】298【数据规模】对于20%的数据,区域之间没有重合的部分;对于其它的数据,区域之间有重合的情况。[参考程序]题目讲解:这道题目如果用常规的搜索来做的话比较复杂,另外该题目的数据量不是非常大,所以该题我们用数组来模拟实现。programtree(input,output);vartree1:array[0..10000]of0..1; l,m,i,j,b,e:int
6、eger; f1,f2:text;beginassign(f1,'tree.in');assign(f2,'tree.out');reset(f1);rewrite(f2);read(f1,l);fori:=0toldotree1:=1;read(f1,m);fori:=1tomdo begin read(f1,b,e); forj:=bforj:=btoedo tree1[j]:=0; end;j:=0;fori:=0toldoiftree1=1thenj:=j+1;write(f2,j);close(f1);close(f2);end.采药(medic.pas/c
7、/cpp)【问题描述】辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?【输入文件】输入文件medic.in的第一行有两个整数T(1<=T<=1000)和M(1<=M<=100),用一