JSOI2007夏令营考试B.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSOI2007夏令营考试B

JSOI2007夏令营考试(B层次) 注意: 考试时间:3小时; 共4个题目,满分400分,每题100分,分为10个测试点; 每个测试点的时限均为1秒,以FP1.0.10\win32下编译为准; 请严格按照题目要求的文件名和输入输出格式进行操作; 题1、手机(MOBILE) 【源程序名】mobile.(pas/c/cpp) 【输入文件】mobile.in 【输出文件】mobile.out 【问题描述】 手机的键盘是这样的: 1 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pqrs 8 tuv 9 wxyz * 0 # 要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。 你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。 【输入数据】 一行一个句子,只包含英文小写字母和空格,且不超过200个字符。 【输出数据】 一行一个整数,表示按键盘的总次数。 【样例】 mobile.in i have a dream mobile.out 23 题2、汇编语言(ASM) 【程序名】asm.(pas/c/cpp) 【输入文件】asm.in 【输出文件】asm.out 【问题描述】 汇编语言的程序有两类语句,顺序执行语句和跳转语句。跳转语句的格式为:jmp 行号,作用是跳到行号所指的那一行去执行。顺序语句执行后不会对程序的执行顺序作任何改变。 比如下面的这个程序: mov ax, @data mov ds, ax jmp 5 jmp 2 mov ax, 4C00H int 21H 这个程序一共有6条语句,其中第三和第四条是跳转语句。 程序从第一行开始执行,执行到第三行后就跳到第五行执行,执行到第六行后程序结束。 你的任务是编写一个程序,判断一个汇编程序会执行多少行语句后退出,或者会进入死循环。 【输入数据】 第一行是一个数字n,表示程序行数(1=n=200) 下面的n行,每行是一条语句,语句前没有多余空格。 【输出数据】 一个数字,表示程序执行的行数。如果程序进入了死循环,则输出数字0。 【样例】 asm.in 6 mov ax, @data mov ds, ax jmp 5 jmp 2 mov ax, 4C00H int 21H asm.out 5 题3、奶酪(CHEESE) 【源程序名】cheese.(pas/c/cpp) 【输入文件】cheese.in 【输出文件】cheese.out 【问题描述】 奶酪和pizza一样,是一小块扇形的固体。在奶酪从工厂里生产出来的时候,一共有4种形状,编号为1~4,分别是圆心角为72o,144o,216o,288o的扇形。奶酪的盒子是圆形的,半径和奶酪的半径一致。也就是说,一块1号奶酪和一块4号奶酪可以恰好装入一个盒子,一块2号奶酪和一块3号奶酪可以恰好装入一个盒子。 你的任务是写一个程序,计算给定的奶酪最多可以装满几个盒子。 【输入数据】 一行四个数字,表示1~4号奶酪的数量,都在0~100之内 【输出数据】 一个数字,表示可以装满几个盒子 【样例】 cheese.in 2 1 1 1 cheese.out 2 题4、书本整理(BOOK) 【源文件名】book.(pas/c/cpp) 【输入文件】book.in 【输出文件】book.out 【问题描述】 Frank是一个非常喜爱整洁的人。他有一大堆书和一个书架,想要把书放在书架上。书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上。但是Frank发现,由于很多书的宽度不同,所以书看起来还是非常不整齐。于是他决定从中拿掉k本书,使得书架可以看起来整齐一点。 书架的不整齐度是这样定义的:每两本书宽度的差的绝对值的和。例如有4本书: 1x2 5x3 2x4 3x1 那么Frank将其排列整齐后是: 1x2 2x4 3x1 5x3 不整齐度就是2+3+2=7 已知每本书的高度都不一样,请你求出去掉k本书后的最小的不整齐度。 【输入数据】 第一行两个数字n和k,代表书有几本,从中去掉几本。(1=n=100, 1=kn) 下面的n行,每行两个数字表示一本书的高度和宽度,均小于200。 【输出数据】 一行一个整数,表示书架的最小不整齐度。 【样例】 book.in 4 1 1 2 2 4 3 1 5 3 book.out 3

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档