东大编程竞赛题
作者:王孟儒062 | 来源:互联网 | 2023-10-12 14:13
Mod9输入文件:modular.in对于一个整数N,求NMod9的结果。Input:每一行为一个整数,该整数的位数不超过500位。处理到
Mod 9 输入文件:modular.in 对于一个整数N,求N Mod 9的结果。 Input: 每一行为一个整数,该整数的位数不超过500位。 处理到文件结束。 Output: 对于每一个输入的整数N,输出一行N Mod 9的结果。 Sample Input: 2 -4 9999999999999999999999999999999999999999999999999999999999 Sample Output: 2 5 0 Greedy Snake 输入文件:snake.in 贪吃蛇大家都玩过吧,当蛇吃到东西时,身体就增长一个单位,如果蛇碰到自己的身体或碰到墙壁,就game over。 现在,我们给出游戏地图,地图上有食物和墙壁,蛇一开始的长度为1,位置在地图的左上角,蛇可以向东(E)南(S)西(W)北(N)移动。另外,我们给出一串蛇的移动序列。现在要你解决的问题是,当蛇按照所给的移动序列移动后,最后会处于什么状态。 Input: 该问题有多个测试数据,一个测试数据中,第一行为两个整数M和N(1<=M、N<=40),接着是一个M*N的网格,网格中’#’表示墙、’.’表示空地、字母O表示食物、S表示蛇。接下来的一行是一个整数L(L<=50),然后是L个字符(E、W、S、N),表示蛇的移动序列。我们保证蛇不可能突然转身(例如当蛇的移动方向为E时,下一次移动不会是W)。另外注意,蛇可能在完成整个移动序列之前就game over。 两个测试数据之间以一空行隔开。当M = N = 0时结果。 Output: 对于每个测试数据,根据蛇的最终状态输出以下句子中的其中一个: (1) The snake ran out of the map in step n (2) The snake ran into itself in step n (3) The snake crashed into a wall in step n (4) The snake’s length now is p Sample Input: 3 4 S... .O.. ..O. 4 ESSE 3 4 S... OOO# .... 11 SEEESWWWNNN 0 0 Sample Output: The snake’s length now is 3 The snake crashed a wall in step 4 Hints: 在第一个样例中,蛇最后的状态是 .... .S.. .SS. 另外,请严格按照要求输出相应的句子 Box Moving 输入文件:box.in 仓库世家(搬箱子)是一个经典游戏,在游戏中你要把箱子搬到特定的位置上。但是在我们这个游戏里稍微有些不同,游戏里的地板是滑的,所以当你将箱子往某个方向稍微一推,箱子就会往该方向一直滑动直到碰到障碍物或到达目标位置。 Input: 第一行是两个整数M和N(3<=M、N<=20),接着M行是一个大小为M*N的网格,网格中’#’表示障碍、’*’表示目标位置、’B’表示箱子。网格的外围由障碍和目标位置组成。注意,一个网格只有一个’*’和一个’B’,而且’B’一定在外围的墙里面,而’*’可以嵌在外围墙里。(见样例) 注意有多个测试数据,测试数据间有一行空行。输入最后以M = N = 0结束。 Output: 对于一个给定的游戏网格,如果箱子不可能到达目标位置,输出:Impossible;如果可以到达,则输出到达目标位置所需的最小的移动次数。 Sample Input: 5 7 ####### #B....# #.....* #..#..# ####### 7 13 ############# #...#......## #...........# #...........# #........#..# #B.#......*.# ############# 0 0 Sample Output: Impossible 6 Hints: 第二个样例中,要到达目标,可以这样移动 上、右、下、右、下、右 或者 上、右、下、右、上、右、下 等。。 而移动次数最少的是6次。 Argus 输入文件:argus.in 一个数据流是一个实时的连续的有序的物件序列,例如网络交通、在线拍卖、电话记录等。同样的,对于数据流的查询也是持续的,并且当新数据到达时会返回新的结果,例如,一个温室的气温检测的查询过程会这样运行: Query-1:“每5分钟,获取最近5分钟的最高温度。” Query-2:“返回每层楼最近10分钟的平均温度。” 为此,我们开发了叫一个叫Argus的数据流管理系统,该系统应用于处理对数据流的查询。用户可以向Argus注册查询,而Argus将会保持查询运行在不断变化的数据上,并按用户要求的频率向相关用户返回结果。 对于Argus,我们使用下面的指令来注册一个查询 Resigster Q_num Period Q_num(0 在Argus中,我们可以同时注册多个不同的查询。我们保证,每个查询都有不同的Q_num。而你的任务是,算出返回结果的前K次查询。如果有两个或以上的查询同时返回结果,它们将会以Q_num的升序顺序返回结果。 Input: 输入的第一部分是Argus注册指令,每个指令占一行。指令数不会超过1000,并且这些指令是同时执行的。这部分以一行”#”为结果。 输入的第二部分是你的任务,这一部分只有一行,为一个正整数K(K <= 10000) Output: 你必须输出返回结果的前K次查询的Q_num,每个Q_num占一行。 Sample Input: Register 2004 200 Register 2005 300 # 5 SampleOutput: 2004 2005 2004 2004 2005 Play On Words 输入文件:words.in 给出一组单词,判断是否可以将单词排序,使得每个单词的第一个字母和前一个单词的最后一个字母相同。 Input: 第一行为一个整数C,表示测试数据的数目。每个测试数据的第一行为整数N(1<=N<=10000),接下来的N行,每行为一个单词,每个单词都只包含小写字母并且最多包含100个字符。 Output: 如果不能将单词序列重组以满足要求,则输出一行”Impossible”,否则输出”Possible”。 Sample Input: 3 2 ok ok 2 ok ko 3 effects cse seu Sample Output: Impossible Possible Possible Hints: 不要暴力地穷搜…… Self Number 输入文件:无 对于任意一个正整数n,定义d(n)为n加上n的各位数之和,如d(75) = 75 + 7 + 5 = 87。给出任意一个n为起始值,我们可以构造一个无限上升序列n,d(n), d(d(n)), d(d(d(n))),……例如,设n=33,则下一个数为33+3+3=39,再下一个数为39+3+9=51,接着是51+5+1=57,故可以构造下面的序列: 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141,…… n就叫d(n)的生成器。在上面的序列中,33是39的生成器,39是51的生成器,等等。有一些数有一个以上生成器:如,101的生成器是91和100。还有一些数是没有生成器的,这就叫self-number。小于100的self-number有:1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86和97。 请编写程序,从小到大输出不大于1000000的所有self-number,一行一个。 Sample Output: 1 3 5 7 9 20 31 : : 9903 9914 9925 9927 9938 9949 9960 9971 9982 9993 : : Hints: 注意该题没有输入。 Climbing Worm 输入文件:worm.in 在一个n英寸深的井里,有一条身长1英寸的小虫,它想尽力爬出井外。可是小虫的力气太小了,每分钟只能爬u英寸,然后就得休息1分钟。在这1分钟里,它又会滑下去d英寸。这个向上爬和休息的过程不断的进行着。这条小虫要用多久才能爬到井外呢? 小于1分钟的时间以1分钟计算。如果小虫在向上爬而即将休息的那一刻到达了井口,我们就认为它已经成功了,而不再计算接下来的休息时间。 Input: 每一行对应于一个输入,包括三个整数n, u 和d,且 d Ouput: 对应于每一行输入,输出一行结果,每行只有一整数,表示小虫爬出深井所花的时间。 Sample Input: 10 2 1 20 3 1 0 0 0 Sample Output: 17 19 Prime Cuts 输入文件:prime.in 我们都知道,素数是只能被1和它本身整除的自然数,比如2,3,5…。在这个问题中,我们将请你编写一个程序,要求如下:给定一个自然数N,我们可以得到一个小于等于N的素数数列。例如,N=21时,我们得到了如下的数列: 2, 3, 5, 7, 11, 13, 17, 19 在上述数列中加入整数1,得到如下数列: 1, 2, 3, 5, 7, 11, 13, 17, 19 将这个数列记作Q(N)。 我们的问题是,给定整数N和C,如果Q(N)的长度是奇数,则找出Q(N)中间的2*C-1个数,如果Q(N)的长度是偶数,则找出Q(N)中间的2*C个数。此外,如果Q(N)的长度小于2*C-1(C是奇数的情况下)或2*C(C是偶数的情况下),则输出整个Q(N)数列。 Input: 输入文件由多行组成,第一行包括两个整数,以空格分开,分别代表N和C,( 1 <= N <= 1000, 1 <= C <= N)。处理到文件结束。 Output: 对应于每一行输入,输出一行结果。每一行输出以N的值开始,然后输出一个空格,接着是C的值和一个冒号(:)加一个空格,紧接着输出从Q(N)中取得的数列,每两个数之间用空格分开。 Sample Input; 21 2 18 2 18 18 100 7 Sample Output: 21 2: 5 7 11 18 2: 3 5 7 11 18 18: 1 2 3 5 7 11 13 17 100 7: 13 17 19 23 29 31 37 41 43 47 53 59 61 67 Hints: 注意冒号后面有空格,另外输出的数列最后不要输出多余的空格。 Meeting Date 输入文件:meeting.in ICPC(International Collegiate Programming Contest)委员会决定尽可能早开一次会议来讨论一些工作问题,但是委员会的成员们都比较忙,因此秘书长要求每位成员向他发一份E-mail,告诉秘书长他(她)哪些时间有空可以过来开会。 秘书长委托你写一个程序,根据每位成员传来的空闲日期列表,选择合适的开会日期。要求这个开会日期是所有日期中与会成员最多的一天(假设成员只要有空就一定来开会)。如果这样的日期不止一天,就选择最早的那一天。 Input: 该问题有多个测试数据,每个测试数据由以下几部分组成: 第一行包含两个整数:N和Q 其中,N代表委员会的人数,Q表示开一次会议所需的最少人数,N和Q都是小于等于50,而Q<=N。 接下来的N行,表示各位成员的空闲日期列表,每行都是如下形式: M Data1 Data2 Data2 … DataM 其中,M表示该成员空闲的天数,0<=M<=100,接下来M个正整数表示他(她)空闲的具体日期。比如:1表示明天有空,2表示后天有空,依此类推。这些数字是递增的并且没有重复。 每一行的输入数据,任两个数字之间使以一个空格隔开,第一个数字前面没有空格,最后一个数字后面也没有空格而是回车。 当N=0,Q=0时,表示输入结束。 Output: 对于每个测试数据,输出的结果为能够出席会议的人数最多的一天,用1,2,3…表示,1表示明天,2表示后天,依此类推。若合要求的日期有多个,则输出最早的那一天。但是,如果这一天能出席的人数小于规定的最少人数(即Q),则输出零表示找不到合适的日期。每个测试数据的输出占一行。N和Q都为0的那份数据不用输出结果。 Sample Input: 3 2 2 1 4 0 3 3 4 8 3 2 4 1 5 8 9 3 2 5 9 5 2 4 5 7 9 3 3 2 1 4 3 2 5 9 2 2 4 3 3 2 1 2 3 1 2 9 2 2 4 0 0 Sample Output: 4 5 0 2 Knight Move 输入文件:knight.in 给定一个8×8的国际象棋棋盘,在这64个格子中指定一个起点和一个终点,求棋子“马”从起点跳到终点所需的最少次数(“马”按照“马走日”的原则跳跃)。 Input: 输入文件包含多个测试数据,每个数据一行,包括起点和终点的两个坐标,坐标格式如下:首先是一个字母(a~h)表示所在的列(从左往右),紧跟着一个数字(1~8)表示所在的行(从上往下),两个坐标第一个是起点,第二个是终点,中间用一个空格隔开。 Output: 对于任一数据块,输出一个整数表示从起点到终点要跳的最少次数,每个输出占一行。 Sample Input: e2 e4 a1 b2 b2 c3 a1 h8 a1 h7 h8 a1 b1 c3 f6 f6 Sample Output: 2 4 2 6 5 6 1 0 Ski 输入文件:Ski.in Michael喜欢滑雪,为了获得速度,滑雪的区域必须向下倾斜,Michae想知道在一个区域中最长的滑坡。区域由一个二维数组给出,数组的每个数字表示点的高度,下面是一个例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右四个点之一,当且仅当高度减小。在上面的例子中,一条可行的滑坡是24-17-16-1(从24开始,到1结束)。当然25-24-23-…3-2-1更长,事实上这是最长的一条。 Input: 输入文件包含多个数据块,每个数据块组成如下: 数据块第一行为两个整数R,C(1<=R,C<=100),分别表示区域的二维数组的行数和列数,接下来是R行,每行有C个整数,每个整数表示该点的高度。任两个整数之间由一个空格隔开,每一行第一个数之前和最后一个数之后都无空格。 R=C=0表示输入结束,对这个数据块不需处理。 Output: 对于每个数据块,输出一个整数表示区域中最长滑坡的长度,该整数独占一行。 Sample Input: 5 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 0 0 Sample Output: 25 Customer Investigation 输入文件:customer.in 公司派你去和几位客户面谈,以了解他们对公司产品的意见。于是你打电话与客户联系,得知他们一般都很忙,不过他们还是会为你抽出一点时间。 现在的问题是有些客户的时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排第一天的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样才不至于让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得可以忽略不计。 Input: 输入包括多个测试数据,每个测试数据开头是一个整数n(1<=n<=1000),表示客户总数。接下来n行每行包括两个正整数s、t,分别表示该客户的空闲时间段的起始时间和终止时间。其中s Output: 对于每个测试数据,输出你一天所能拜访的最多客户数,每个输出占一行。 Sample Input: 3 1 15 2 19 15 17 Sample Output: 2 帮忙做一下
推荐阅读
Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ...
[详细]
蜡笔小新 2024-11-08 09:14:47
本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ...
[详细]
蜡笔小新 2024-11-05 06:40:19
TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ...
[详细]
蜡笔小新 2024-11-04 12:55:23
在本教程中,我们将详细介绍如何使用 ArcGIS API 3.x for JavaScript 绘制风向流动图。如果您对所涉及的 API 类不熟悉,建议参考 Esri 官方网站上的 ArcGIS API 3.x for JavaScript 文档,其中提供了详尽的类介绍和使用说明。此外,我们还将提供完整的源代码,帮助您更好地理解和实现这一功能。 ...
[详细]
蜡笔小新 2024-11-01 12:21:29
Windows环境下RabbitMQ安装详尽指南 ...
[详细]
蜡笔小新 2024-11-07 17:17:09
在Java编程中,`AbstractClassTest.java` 文件详细解析了抽象类的使用方法。该文件通过导入 `java.util.*` 包中的 `Date` 和 `GregorianCalendar` 类,展示了如何在主方法 `main` 中实例化和操作抽象类。此外,还介绍了抽象类的基本概念及其在实际开发中的应用场景,帮助开发者更好地理解和运用抽象类的特性。 ...
[详细]
蜡笔小新 2024-11-07 16:36:55
在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ...
[详细]
蜡笔小新 2024-11-07 16:19:28
尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ...
[详细]
蜡笔小新 2024-11-07 06:55:33
手指触控|Android电容屏幕驱动调试指南 ...
[详细]
蜡笔小新 2024-11-07 01:42:20
Python 编程技巧:实现字符串中字符大小写的转换 ...
[详细]
蜡笔小新 2024-11-06 16:02:48
本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ...
[详细]
蜡笔小新 2024-11-06 15:21:35
在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ...
[详细]
蜡笔小新 2024-11-06 10:03:07
传奇手游智能辅助脚本能够显著提升玩家的游戏体验,通过自动打怪功能实现高效升级。该脚本利用先进的算法和技术,确保在游戏过程中自动完成战斗任务,帮助玩家节省大量时间和精力。此外,脚本还具备智能路径规划和资源管理功能,进一步优化游戏进程,使玩家能够更加轻松地达到目标等级。 ...
[详细]
蜡笔小新 2024-11-02 19:06:43
人人租机作为国内领先的信用免押租赁平台,为企业和个人提供全方位的新租赁服务。通过接入支付宝小程序功能,该平台实现了从零到百的迅猛增长,成为全国首家推出“新租赁小程序”开发服务的阿里巴巴小程序服务商(ISV)。这一创新举措不仅提升了用户体验,还显著增强了平台的市场竞争力。 ...
[详细]
蜡笔小新 2024-11-02 13:00:12
在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ...
[详细]
蜡笔小新 2024-10-31 16:58:11