热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

东大编程竞赛题

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卡? ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 在本教程中,我们将详细介绍如何使用 ArcGIS API 3.x for JavaScript 绘制风向流动图。如果您对所涉及的 API 类不熟悉,建议参考 Esri 官方网站上的 ArcGIS API 3.x for JavaScript 文档,其中提供了详尽的类介绍和使用说明。此外,我们还将提供完整的源代码,帮助您更好地理解和实现这一功能。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 在Java编程中,`AbstractClassTest.java` 文件详细解析了抽象类的使用方法。该文件通过导入 `java.util.*` 包中的 `Date` 和 `GregorianCalendar` 类,展示了如何在主方法 `main` 中实例化和操作抽象类。此外,还介绍了抽象类的基本概念及其在实际开发中的应用场景,帮助开发者更好地理解和运用抽象类的特性。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • Python 编程技巧:实现字符串中字符大小写的转换 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 传奇手游智能辅助脚本能够显著提升玩家的游戏体验,通过自动打怪功能实现高效升级。该脚本利用先进的算法和技术,确保在游戏过程中自动完成战斗任务,帮助玩家节省大量时间和精力。此外,脚本还具备智能路径规划和资源管理功能,进一步优化游戏进程,使玩家能够更加轻松地达到目标等级。 ... [详细]
  • 人人租机作为国内领先的信用免押租赁平台,为企业和个人提供全方位的新租赁服务。通过接入支付宝小程序功能,该平台实现了从零到百的迅猛增长,成为全国首家推出“新租赁小程序”开发服务的阿里巴巴小程序服务商(ISV)。这一创新举措不仅提升了用户体验,还显著增强了平台的市场竞争力。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
author-avatar
王孟儒062
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有