2011年ACM大赛真题试题讲述.docVIP

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

1 数学的游戏 输入文件名“gaspar.in” 输出文件名“estdout.pc2” 问题描述 17世纪法国数学家加斯帕在《数学的游戏问题》中讲的一个故事:n个教徒和n个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了个办法:2n个人围成一个圆圈,从第一个人开始依次循环报数,每数到第九个人就将他扔入大海,如此循环直到仅剩n个人为止 。问怎样的排法,才能使每次投入大海的都是非教徒。 输入 输入文件由一行构成,就是n的值。 输出 输出文件中是一行字符串,字符串由n个‘@’字符(代表教徒)和n个‘+’ 字符(代表非教徒)排列构成。该排列使得按照前面的约定每次投入大海的都是非教徒。 输入样本 15 输出样本 @@@@+++++@@+@@@+@++@@+++@++@@+ 2 翻译小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M,软件会将新单词存入一个未使用的内存单元;若内存中已存入M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 多组数据,每组数据共2 行。每行中两个数之间用一个空格隔开。 第一行为两个正整数M 和N(0M≤ 100,0N ≤ 1000),代表内存容量和文章的长度。 第二行为N 个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 当N=M=0时输入数据结束。 每组数据占1行,分别包含一个整数,为软件需要查词典的次数。 3 7 1 2 1 5 4 4 1 2 10 8 824 11 78 11 78 11 78 8 264 0 0 输出样本 5 6 3 自然数的计算 输入文件名“natural.in” 输出文件名“estdout.pc2” 问题描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数最高位数字的一半; 3.?加上数后,继续按此规则进行处理,直到不能再加自然数为止. 第一行一个数t,表示有t组数据 之后每组数据占一行,每行一个数n 每组数据占一行,一个数,表示满足条件的数的个数 1 6 输出样本 6 4自动纠正拼写错误 输入文件: “auto.in” 输出文件: “estdout.pc2” 问题描述 某些文本编辑器提供纠正英文单词拼写错误的功能。你们本次要解决的问题就是实现这样一个能够完成自动纠正拼写错误(ACM)功能的应用程序。 ACM能够纠正以下几类的单词拼写错误: 漏写或多写1个字母,例如单词”letter”被写成了”leter”,或者是”letter”被写成了”lettter”。 写错了1个字母,例如”letter”被写成了”ketter”。 两个相邻的字母的书写顺序弄错了,例如”letter”被写成了” lettre”。 ACM的纠错是基于一个已知单词集的字典来进行的。每当一个文档中含有字典中不存在的单词时,ACM就会试图用字典中与该单词最相似的单词代替它。ACM对两个单词是相似的有这样的定义:只要这两个单词能够按照上面叙述的3类拼写错误规则中任何一种进行相互转换,就认为这两个单词是相似的。如果在字典中没有发现相似的单词,就在原文本中保留这个未知单词。 输入 在输入文件的第1行里将给出字典中的已知单词的数量:整数 n,其中0≤n ≤ 10000。在紧接着的n行里包含有字典中的n个单词。在这n行后的第1行里将给出1个正整数q,其中0≤q ≤ 1000,它表示需要查询单词的数量。在这之后的q行里包含有q个需要查询的单词。你可以假设在输入文件中每一个的单词只能由26个小写字母(a 到 z)构成。 输出 针对每一个需要查询单词,输出一行字符串。要求:该字符串以需要查询的单词开始;并从下面3个黑体描述中选择合适的一个子串添加在之后。 如果需要查询的单词在字典中就添加子串:“is correct”。 如果

文档评论(0)

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

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

1亿VIP精品文档

相关文档