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

 

 

帮忙做一下


推荐阅读
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 在2022年,随着信息化时代的发展,手机市场上出现了越来越多的机型选择。如何挑选一部适合自己的手机成为了许多人的困扰。本文提供了一些配置及性价比较高的手机推荐,并总结了选择手机时需要考虑的因素,如性能、屏幕素质、拍照水平、充电续航、颜值质感等。不同人的需求不同,因此在预算范围内找到适合自己的手机才是最重要的。通过本文的指南和技巧,希望能够帮助读者节省选购手机的时间。 ... [详细]
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社区 版权所有