2014年衢州市第二十七届青少年信息学竞赛复赛试卷_提高组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
衢州市第二十七届青少年信息学竞赛复赛试卷
提高组
(请选手务必仔细阅读本页内容)
二.提交源程序文件名
三.编译命令(不包含任何优化开关)
注意事项:
1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。
4、特别提醒:评测在Windows下进行,评测软件为cena8.0。
修补管道
(pipe.pas/c/cpp)
【题目描述】
大陆被分成n*m 的格子,两个城市M 和Z 之间的天然气通过管道相连,管道有以下几种形态:
天然气从城市M 运送到城市Z ,管道是双向的,且对于Block +,天然气必须在两个方向都有流动。如图:
现在有一个格子的管道消失了,你的任务就是找到这个格子以及管道的类型。
【输入格式】
第一行两个数n,m ,中间用一个空格隔开;以下 n 行,每行m 个字符。 '.'表示空格,'|','-','+','1','2','3','4'表示管道的类型。 M 、Z 表示起点和终点。
数据保证只有一个管道口和M 、Z 相邻,这个管道设计中没有废弃管道(也就是说所有管道都必须使用),数据保证答案存在且唯一。
【输出格式】
一行,前两个数表示管道位置,后一个字符表示管道类型。 即(行,列,管道类型),中间用一个空格隔开。
【数据规模】
对于100%的数据:1≤n,m ≤25;
【样例输入1】 3 7 ....... .M-.-Z. .......
【样例输出1】 2 4 -
【样例输入2】 3 5 ..1-M 1-+.. Z.23.
【样例输出2】 2 4 4
跳跃
(jump.pas/c/cpp)
【题目描述】
跳跃是笨笨的天性,当然跳需要消耗能量,每跳1米就会消耗1点能量,如果笨笨有很多能量就能跳很高。
笨笨为了收集能量,来到百亩森林的一个神秘地方。在这里,笨笨的正上方每100米处就有一个能量球(也就是这些能量球位于海拔100,200,300……米处),每个能量球所能提供的能量是不同的,一共有N个能量球(也就是最后一个能量球在N×100米处)。笨笨为了想收集能量,想跳着吃完所有的能量球。笨笨可以自由控制他每次跳的高度,接着他跳起把这个高度以下的能量球都吃了,他便能获得能量球内的能量,接着吃到的能量球消失。当然笨笨的跳跃技能还不够高,还不会二级跳,所以不能因新吃到的能量而变化此次跳跃的高度,并且每次跳完都会掉下来,回到地面。
问笨笨若要吃完所有的能量球,最多还能保留多少能量。
【输入格式】
输入文件第1行包含两个正整数N,M,表示了能量球的个数和笨笨的初始能量。
第2行包含N个非负整数,从左到右第I个数字依次从下向上描述了位于I×100米位置能量球包含的能量,每2个整数之间用1个空格隔开。
【输出格式】
输出文件仅包括一个非负整数,为笨笨吃完所有能量球后最多保留的能量。
【样例输入】
3 200
200 200 200
【样例输出】
400
【样例说明】
第1次跳100米,得到200能量,消耗100能量,所以落地后拥有300能量。
第2次跳300米,吃到剩下的第2棵能量球,消耗拥有的300能量,得到400能量。
若第1次跳200米,第2次跳300米,最后剩余300能量。
【数据规模】
对于10%的数据:有N≤10;
对于20%的数据:有N≤100;
对于40%的数据:有N≤1,000;
对于70%的数据:有N≤100,000;
对于100%的数据:有N≤2,000,000;
保证对于所有数据,笨笨都能吃到所有的能量球,并且能量球包含的能量之和不超过231-1。
叠箱子
(box.pas/c/cpp)
【题目描述】
笨笨有N 个重量为1的无盖空箱子,每个箱子有长和宽,那么长宽小的箱子就可以放进长宽大的箱子里。现在笨笨要通过把箱子放进其他箱子中来制造一个最重的箱子,请你告诉笨笨一个箱子最多能有多少重。