计算机程序算法试题._第1页
计算机程序算法试题._第2页
计算机程序算法试题._第3页
计算机程序算法试题._第4页
计算机程序算法试题._第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 数字分解Time limit: 1 Seconds   Memory limit: 32768K  描述 Description 今年是国际数学联盟确定的“2000世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有

2、一个数字串: 312,当N=3,K=1时会有以下两种分法:1)3*12=362)31*2=62 这时,符合题目要求的结果是: 31*2=62 现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。 输入格式 Input Format 程序的输入共有两行:第一行共有2个自然数N,K (6<=N<=40,1<=K<=6)第二行是一个K度为N的数字串。 输出格式 Output Format 屏幕输出(结果显示在屏幕上),相对于输入,应输出所求得的最大乘积(一个自然数)。 样例输入 Sample Input 4 21231 样例输出 Sample Output 62 时间限

3、制 Time Limitation 1 second 来源 Source NOIP 2000年 2. 回文 Time Limit: 1 Second Memory Limit: 32768 KB 描述 Description 回文词是一种对称的字符串也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是写一个程序,求出将给定字符串变成回文词所需插入的最少字符数。 比如字符串“Ab3bd”,在插入两个字符后可以变成一个回文词(“dAb3bAd”或“Adb3bdA”)。然而,插入两个以下的字符无法使它变成一个回文词。

4、输入格式 Input Format 第一行包含一个整数N,表示给定字符串的长度,3<=N<=5000第二行是一个长度为N的字符串,字符串由大小写字母和数字构成。 输出格式 Output Format 一个整数,表示需要插入的最少字符数。 样例输入 Sample Input 5Ab3bd 样例输出 Sample Output 2 时间限制 Time Limitation 各个测试点1s 来源 Source IOI 2000by Zossin 3. 看球的巴士 描述 Description 两个球队的支持者要一起坐车去看球,他们已经排成了一列。我们要让他们分乘若干辆巴士,同一辆巴士上的

5、人必须在队伍中是连续的。为了在车上不起冲突,希望两队的支持者人数尽量相等,差至多是D。有一个例外,就是一辆车上的人全部都是一个球队的支持者。问要将这N个人全部送至球场,至少要几辆巴士。 输入格式 Input Format 第一行是整数N和D,1<=N<=2500,1<=D<=N。接下来的N行,按排队的顺序,描述每个人支持的球队,用H或J表示。 输出格式 Output Format 至少要几辆巴士。 样例输入 Sample Input 14 3HJHHHJHJHHHHHH 样例输出 Sample Output 2 时间限制 Time Limitation 1 second

6、 注释 Hint 有多种方案,例如让前9人做一辆车,差正好是3;后5人做一辆车,因为只有一对的支持者。 4. 伪随机数 Time Limit: 1 Second Memory Limit: 32768 KB 计算机通常不能产生真正的随机数,但是经常使用计算机来产生伪随机数。由于实际应用,通过算法使得伪随机数成为真随机数。 随机数应用广泛,包括在仿真领域。伪随机数生成时用的最普遍的是线性同余法。如果上一次生成的伪随机数是L,那么接下来的伪随机数通过(z*L+ I)mod M产生,这里的Z是一个常数乘法器,I是常数增量,M是常量模数。例如,假设Z=7 ,I=5,M = 12,第一个随机数(通常叫做

7、种子)是4,那么我们可以得到后续的伪随机数,如下表所示: 通过上表我们可以看出,通过这个方法产生的随机数序列在6个数字以后会重复。 显然,由于模数M,用这个方法能产生的最长序列是有限的。 通过给出的Z, I, M, 和种子 L,(Z,I,M,L < 10000),我们确定产生的伪随机数序列的重复周期。注意重复周期不一定从种子L开始。 Input每行有四个数字,依次是Z, I, M, 和 L,其中L< M. 最后一行是4个0,表示输入数据的结束。 Output对于输入的每行,输出伪随机数序列的重复周期Sample Input7 5 12 45173 3849 3279 1511911

8、1 5309 6000 12341079 2136 9999 12370 0 0 0Sample OutputCase 1: 6Case 2: 546Case 3: 500Case 4: 220 5. 机器人规划Time limit: 5 Seconds Memory limit: 32768K 在一个方格地图上放机器人。有三种方格:墙、草地、空地。机器人只能放在空地上,不断向四个方向发射激光。激光可以穿过草地,但不能穿墙。机器人不能移动。问在使机器人不能互相攻击的情况下,最多可以放多少个机器人。输入:第一行T(<=11)代表有T组测试数据;每组测试数据第一行为m,n(1<=m,n

9、<=50)代表地图的大小;下面有m行,每行n个字符'#',''或'o',分别代表墙,草地,空地.输出:对于第T组数据,首先输出"Case :T"提行输出最多可以放置的机器人数.Sample Input24 4o*#oo#o*o4 4#oooo#oooo#o*#Sample OutputCase :13Case :256. 游戏 Time limit: 10 Seconds   Memory limit: 32768K  最近Hart迷上了一种游戏:Gnome Tetravex。游戏开始给出玩

10、家 n*n个正方形,每个正方形分成四个三角形,并且分别标号(0到9)。在每个正方形里,三角形分成左三角形,上三角形,右三角形和下三角形。例如,图1显示了游戏的初始状态:2*2个正方形 图. 1 初始状态:2*2个正方形玩家需要移动这些正方形到最终状态。所谓的最终状态就是:任意两个相邻正方形的相邻三角形的编号要是同一个数字。图2就是上面例子的一种最终状态。图. 2 最终状态看起来这个游戏不难,实际上,Hart对这个游戏并不熟,他只能完成最简单的。如果游戏复杂一点,他就完成不了。请编程判断游戏是否能够完成。  Input 输入文件包含了几个游戏用例。每个游戏用例的第一行包含一个

11、整数(0<=n<=5),表示游戏的正方形个数n*n。随后的n*n行表示每一个正方形内的三角形编号。每一行有四个整数,编号顺序按从上,右,下,左。 以0表示输入文件结束。  Output 判断每一个游戏用例是否能够完成,打印"Possible"或者"Impossible"。以空行隔开每个游戏用例的判断结果。 Sample Input 25 9 1 44 4 5 66 8 5 40 4 4 321 1 1 12 2 2 23 3 3 34 4 4 40 Output for the Sample Input

12、 Game 1: PossibleGame 2: Impossible7. 欧几里得游戏 Time Limit: 1 Second Memory Limit: 32768 KB Stan 和Ollie两个人用两个自然数做游戏。首先Stan用大数减去小数的正倍数,假设所得的差是非负的。然后,Ollie对差和小数进行同样的操作,然后是Stan,依次交替。直到有人得到差的结果是0,就是这个人赢了。例如,他们从(25,7)开始: 25 711 74 74 31 31 0 这个例子是Stan 赢了. Input每行包含游戏开始的两个正整数,测试用例以“0 0”结束。Stan总是先开始游戏。 O

13、utput对每个测试用例,输出哪个赢的判断结果。输入的最后一行“0 0”不需要处理。 Sample Input34 1215 240 0Sample OutputStan winsOllie wins8. Prime Ring Problem 1 Time Limit: 10 Seconds Memory Limit: 32768 KB A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ., n into each circle separately, and the sum of numb

14、ers in two adjacent circles should be a prime.Note: the number of first circle should always be 1.Inputn (0 < n < 20)OutputThe output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbe

15、rs must satisfy the above requirements. Print solutions in lexicographical order.You are to write a program that completes above process.Print a blank line after each case.Sample Input68Sample OutputCase 1:1 4 3 2 5 61 6 5 2 3 4Case 2:1 2 3 8 5 6 7 41 2 5 8 3 4 7 61 4 7 6 5 8 3 21 6 7 4 3 8 5 29. 迷宫

16、 Time Limit: 10 Seconds Memory Limit: 32768 KB 金字塔的北边有个很大的迷宫。迷宫由很多四方块组成,这些四方块中有的是岩石,有的是空的。在每个空的四方块中央的地上有些小钩子。分析发现每两个钩子可以通过一根绳子连接起来,而这根绳子穿过路径(由互相连起来的四方块组成)上的所有方块。当绳子拉紧的时候,一个隐藏的门就会打开。问题是我们并不知道要连接哪个钩子,因此所需要绳子的最大长度也是未知的。任务:给出一个迷宫,请确定绳子的最大长度。 Input输入有几个测试用例。第一行的数字T表示测试用例的数目。每个测试用例的第一行是两个整数C,R(2<=C,R&l

17、t;=1000),分别表示行列数。接下来有R行,每行有C个字符。字符是“#”或者“.”,表示迷宫的内部分布。“#”代表岩石四方块,“.”代表空的四方块。当相邻块紧挨在一起,只能在相邻四方块间行走,不能按对角线行走也不能走出迷宫。迷宫的设计方法是:任意两个空四方块之间只有一条路径。因此,如果我们可以找到合适的钩子来连接,也就找到了相应的路径。 Sample Output对于每个测试用例,请输出任意两个空四方块间的路径中的最大长度(长度单位是块)。 Sample Input23 3#.#7 6#.#.#.#.#.#.#.#.#Sample OutputMaximum rope length is

18、0.Maximum rope length is 8.10. 抄书 Time Limit: 1 Second Memory Limit: 32768 KB m本书分给k个抄书员,书的页数为分别为p1,p2.pm,每个抄书员速度相同,而且只能分得连续的若干本书。求一种分配方案使得抄书的所用总时间最少。每个抄书员分配至少一本书。 Input输入的第一行只包含一个整数N,表示有N个测试用例。接下来是测试用例。每个测试用例包含两行。每个测试用例的第一行有两个整数:m和k ,1 <= k <= m <= 500。第二行有整数p1, p2, . pm,以空格隔开。所有的数字小于10000

19、000。 Output对于每个用例的分配结果输出一行。分配的方案以斜线('/')表示。如果不止一种分配方案,输出能够使第一个抄书员的工作量最少的方案。 Sample Input29 3100 200 300 400 500 600 700 800 9005 4100 100 100 100 100Sample Output100 200 300 400 500 / 600 700 / 800 900100 / 100 / 100 / 100 10011.Exchange Rates Time Limit: 1 Second Memory Limit: 32768 KB Usin

20、g money to pay for goods and services usually makes life easier, but sometimes people prefer to trade items directly without any money changing hands. In order to ensure a consistent "price", traders set an exchange rate between items. The exchange rate between two items A and B is express

21、ed as two positive integers m and n, and says that m of item A is worth n of item B. For example, 2 stoves might be worth 3 refrigerators. (Mathematically, 1 stove is worth 1.5 refrigerators, but since it's hard to find half a refrigerator, exchange rates are always expressed using integers.) Yo

22、ur job is to write a program that, given a list of exchange rates, calculates the exchange rate between any two items. InputThe input file contains one or more commands, followed by a line beginning with a period that signals the end of the file. Each command is on a line by itself and is either an

23、assertion or a query. An assertion begins with an exclamation point and has the format ! m itema = n itembwhere itema and itemb are distinct item names and m and n are both positive integers less than 100. This command says that m of itema are worth n of itemb. A query begins with a question mark, i

24、s of the form ? itema = itemband asks for the exchange rate between itema and itemb, where itema and itemb are distinct items that have both appeared in previous assertions (although not necessarily the same assertion). OutputFor each query, output the exchange rate between itema and itemb based on all the assertions made up to that point. Exchange rates must be in integers and must be reduced to lowest terms. If no exchange rate can be determined at that point, use question marks instead of integers. Format all output exactly as shown in the example. Note: >Item

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论