网站大量收购独家精品文档,联系QQ:2885784924

ACM面试题.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多
ACM面试题

【试题一】青蛙相遇问题 【题目描述】 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。 我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。 Input 输入只包括一行5个整数x,y,m,n,L,其中x≠y 2000000000,0 m、n 2000000000,0 L 2100000000。 Output 输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行Impossible 示例 Sample Input 1 2 3 4 5 Sample Output 4 题目要求; 1.程序应该可以运行:通过控制台输入数据,输出数据通过printf给出; 2.程序结构明了逻辑缜密、清晰,符合编码规范; 3.程序功能正确;程序要注意效率;并且要求根据输入及时确认是否能够相遇,如果不能相遇请及早退出程序; 程序思路: 说明:可以将青蛙的路线看坐是一个圆 判断其坐标 如果下一次跳动后将饶过原点 则把坐标转换 这样无论青蛙在哪个位置上 都用坐标来表示它 如果两只青蛙坐标相等 则相遇 如果两只青蛙开始的坐标不一样 但是速度一样 那么将永远不能相遇 【试题二】田忌赛马 此题就是经典的田忌赛马,田忌和他的对手分别有n匹马,分别给出田忌的马的速度和对手的马的速度。两人进行n场比赛,每次比赛双方各出一匹马,每匹马限比一次,问田忌要怎么样派自己的马和对方比,才能使自己赚的钱最多(或者输得最少),赢一场得200,输一场负200,平局0 此题要求输出田忌最终得的钱(或输的钱) Sample Input //输入一个数n 范围 n=1000 以0结束 n表示田忌的马的数量 92 83 71 //输入田忌的n匹马每匹的速度 95 87 74 //输入田忌的对手的n匹马每匹的速度 2 20 20 20 20 2 20 19 22 18 0 //0是中止 对于这个经典问题首先我们从题目中可以得到这么一个信息这是一个最优问题,类似于我们上面讲到的背包问题。与背包问题不同的是田忌赛马是一个由双方共同来决定最优。那么根据背包的思路可以得到,要想做到最优,那么就要使马赢得最优。也就是说田忌略胜一筹就可以了。所以我们首先把双方的马按速度排序起来。这样我们只要算出田忌能赢的场数和平的场数计算出来就可以了。田忌和国王的马都从强到弱遍历。这样我们就可以根据实力的不同产生3个分支,田忌的马胜,那双方都遍历下一个,田忌的马平就产生两个分支,一种是那双方都遍历下一个,另一种国王去遍历下一个(田忌拿这马去和国王的下匹马比),如果国王的马胜,那国王遍历下一个。由上面终结,我们就可以去用递归和分治来解决这个问题。 【试题三】密码截获 Time Limit:1000MS Memory Limit:1024K Description: Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化ABBA-12ABBA,ABA-ABAKK,123321。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗? Input: 测试数据有若干行字符串,包括字母,数字,符号。(字母区分大小写) Output: 与输入相对应每一行输出一个整数,代表最长有效密码串的长度。 Sample Input: ABBA 12ABBA A ABAKKabaaab Sample Output: 4 4 1 3 6 5 【试题四】分糖果 所有学生以圆形围着老师,每个学生开始时均有偶数块糖果,老师每吹一次哨子,每位学生拿出手中一半糖果给右侧的同学,对任何一个学生,吹哨后,当手中的糖果

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档