热门标签 | 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

 

 

帮忙做一下


推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 在编写顺序控制程序(梯形图)时,一些复杂的功能如时间控制和旋转换刀等难以仅通过位运算实现。因此,功能指令应运而生,旨在简化这些复杂操作的编程过程。本文详细介绍了FANUC PMC中常用的功能指令及其应用场景。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • 本题旨在通过给定的评级信息,利用拓扑排序和并查集算法来确定全球 Tetris 高手排行榜。题目要求判断是否可以根据提供的信息生成一个明确的排名表,或者是否存在冲突或信息不足的情况。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 基于结构相似性的HOPC算法:多模态遥感影像配准方法及Matlab实现
    本文介绍了一种基于结构相似性的多模态遥感影像配准方法——HOPC算法,该算法通过相位一致性模型构建几何结构特征描述符,能够有效应对多模态影像间的非线性辐射差异。文章详细阐述了HOPC算法的原理、实验结果及其在多种遥感影像中的应用,并提供了相应的Matlab代码。 ... [详细]
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社区 版权所有