软件大赛算法设计练习题目.docx

上传人:b****0 文档编号:18379028 上传时间:2023-08-16 格式:DOCX 页数:26 大小:45.67KB
下载 相关 举报
软件大赛算法设计练习题目.docx_第1页
第1页 / 共26页
软件大赛算法设计练习题目.docx_第2页
第2页 / 共26页
软件大赛算法设计练习题目.docx_第3页
第3页 / 共26页
软件大赛算法设计练习题目.docx_第4页
第4页 / 共26页
软件大赛算法设计练习题目.docx_第5页
第5页 / 共26页
软件大赛算法设计练习题目.docx_第6页
第6页 / 共26页
软件大赛算法设计练习题目.docx_第7页
第7页 / 共26页
软件大赛算法设计练习题目.docx_第8页
第8页 / 共26页
软件大赛算法设计练习题目.docx_第9页
第9页 / 共26页
软件大赛算法设计练习题目.docx_第10页
第10页 / 共26页
软件大赛算法设计练习题目.docx_第11页
第11页 / 共26页
软件大赛算法设计练习题目.docx_第12页
第12页 / 共26页
软件大赛算法设计练习题目.docx_第13页
第13页 / 共26页
软件大赛算法设计练习题目.docx_第14页
第14页 / 共26页
软件大赛算法设计练习题目.docx_第15页
第15页 / 共26页
软件大赛算法设计练习题目.docx_第16页
第16页 / 共26页
软件大赛算法设计练习题目.docx_第17页
第17页 / 共26页
软件大赛算法设计练习题目.docx_第18页
第18页 / 共26页
软件大赛算法设计练习题目.docx_第19页
第19页 / 共26页
软件大赛算法设计练习题目.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件大赛算法设计练习题目.docx

《软件大赛算法设计练习题目.docx》由会员分享,可在线阅读,更多相关《软件大赛算法设计练习题目.docx(26页珍藏版)》请在冰点文库上搜索。

软件大赛算法设计练习题目.docx

软件大赛算法设计练习题目

1、母牛生小牛

Problem

设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

Input

本题有多组数据。

每组数据只有一个整数N,独占一行。

(1≤N≤50)

Output

对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量

SampleInput

1

4

5

20

SampleOutput

1

2

3

872

2、座位调整

题目描述:

XX办公区里到处摆放着各种各样的零食。

XX人力资源部的调研发现,员工如果可以在自己喜欢的美食旁边工作,工作效率会大大提高。

因此,XX决定进行一次员工座位的大调整。

调整的方法如下:

1.首先将办公区按照各种零食的摆放分成N个不同的区域。

(例如:

可乐区,饼干区,牛奶区等等)。

2.每个员工对不同的零食区域有不同的喜好程度(喜好程度度的范围为1—100的整数,喜好程度越大表示该员工越希望被调整到相应的零食区域)。

3.由于每个零食区域可以容纳的员工数量有限,人力资源部希望找到一个最优的调整方案令到总的喜好程度最大。

数据输入:

第一行包含两个整数N,M,(1<=N,M<=300)。

分别表示N个区域和M个员工。

第二行是N个整数构成的数列a,其中a[i]表示第i个区域可以容纳的员工数,(1<=a[i]<=M,a[1]+a[2]+..+a[N]=M)。

紧接着是一个M*N的矩阵P,P(i,j)表示第i个员工对第j个区域的喜好度。

答案输出:

对于每个测试数据,输出可以达到的最大的喜好程度。

输入样例

33

111

1005025

1005025

1005025

输出样例

175

数据解释:

此数据只存在一种安排方法,三个员工分别安置在三个区域。

最终的喜好程度为100+50+25=175

最优解

3、剪刀石头布

剪刀石头布

N个小孩正在和你玩一种剪刀石头布游戏。

N个小孩中有一个是裁判,其余小孩分成三组(不排除某些组没有任何成员的可能性),但是你不知道谁是裁判,也不知道小孩们的分组情况。

然后,小孩们开始玩剪刀石头布游戏,一共玩M次,每次任意选择两个小孩进行一轮,你会被告知结果,即两个小孩的胜负情况,然而你不会得知小孩具体出的是剪刀、石头还是布。

已知各组的小孩分别只会出一种手势(因而同一组的两个小孩总会是和局),而裁判则每次都会随便选择出一种手势,因此没有人会知道裁判到底会出什么。

请你在M次剪刀石头布游戏结束后,猜猜谁是裁判。

如果你能猜出谁是裁判,请说明最早在第几次游戏结束后你就能够确定谁是裁判。

输入格式:

输入文件包含多组测试数据。

每组测试数据第一行为两个整数N和M(1≤N≤500,0≤M≤2000),分别为小孩的个数和剪刀石头布游戏进行的次数。

接下来M行,每行两个整数且中间以一个符号隔开。

两个整数分别为进行游戏的两个小孩各自的编号,为小于N的非负整数。

符号的可能值为“=”、“>”和“<”,分别表示和局、第一个小孩胜和第二个小孩胜三种情况。

输出格式:

每组测试数据输出一行,若能猜出谁是裁判,则输出身为裁判的小孩的编号,并输出在第几次游戏结束后就能够确定谁是裁判。

如果无法确定谁是裁判,或者发现剪刀石头布游戏的胜负情况不合理(即无论谁是裁判都会出现矛盾),则输出相应的信息。

具体输出格式请参考输出样例。

输入样例

33

0<1

1<2

2<0

35

0<1

0>1

1<2

1>2

0<2

44

0<1

0>1

2<3

2>3

10

输出样例

Cannotdetermine

Player1canbedeterminedtobethejudgeafter4lines

Impossible

Player0canbedeterminedtobethejudgeafter0lines

说明:

共有5个测试数据集,每个测试数据集为一个输入文件,包含多组测试数据。

每个测试数据集从易到难分别为5、10、15、30和40分,对每个测试数据集分别执行一次程序,每次必须在运行时限3秒内结束程序并输出正确的答案才能得分。

所有数据均从标准输入设备(stdin/cin)读入,并写出到标准输出设备(stdout/cout)中。

五个测试数据集中输入N分别不大于20、50、100、200和500,各有10组测试数据。

4、生日蛋糕

Description

7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。

设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri,高度为Hi的圆柱。

当iRi+1且Hi>Hi+1。

由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。

令Q=Sπ

请编程对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。

(除Q外,以上所有数据皆为正整数)

Input

有两行,第一行为N(N<=10000),表示待制作的蛋糕的体积为Nπ;第二行为M(M<=20),表示蛋糕的层数为M。

Output

仅一行,是一个正整数S(若无解则S=0)。

SampleInput

100

2

SampleOutput

68

Hint

圆柱公式

体积V=πR2H

侧面积A'=2πRH

底面积A=πR2

5、字符串的距离

Problem

设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为“abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X的扩展串,这里“□”代表空格字符。

如果A1是字符串A的扩展串,B1是字符串B的扩展串,A1与B1具有相同的长度,那么我们定义字符串A1与B1的距离为相应位置上的字符的距离总和,而两个非空格字符的距离定义为它们的ASCII码的差的绝对值,而空格字符与其它任意字符之间的距离为已知的定值K,空格字符与空格字符的距离为O。

在字符串A、B的所有扩展串中,必定存在两个等长的扩展串A1、B1,使得A1与B1之间的距离达到最小,我们将这一距离定义为字符串A、B的距离。

请你写一个程序,求出字符串A、B的距离。

Input

有多组数据,每一组数据第一行为字符串A,第二行为字符串B,A、B均由小写字母组成且长度均不超过2000,第三行为一个整数K,1≤K≤100,表示空格与其它字符的距离。

Output

每组数据一行包含一个整数,表示要求的字符串A、B的距离。

SampleInput

cmc

snmn

2

SampleOutput

10

6、四塔问题

“汉诺塔”,是一个众所周知的古老游戏。

现在我们把问题稍微改变一下:

如果一共有4根柱子,而不是3根,那么至少需要移动盘子多少次,才能把所有的盘子从第1根柱子移动到第4根柱子上呢?

为了编程方便,您只需要输出这个结果mod10000的值。

Input

该题含有多组测试数据,每组一个正整数n。

(0

Output

一个正整数,表示把n个盘子从第1根柱子移动到第4根柱子需要的最少移动次数mod10000的值。

SampleInput

15

SampleOutput

129

7、平方数

给出包含M个数字的列表,和列表中所有数字的所有质因数。

求出最长的子列表,使得子列表中所有数字的乘积是一个完全平方数。

输入

输入文件包含多组测试数据。

第一行包含两个整数N,M(1<=N<=30,1<=M<=30000).N是质因数的个数。

接下来一行有N个整数,给出所有的质因数。

然后一行包含M个整数,给出列表。

输入文件结束于N=M=0.

输出

对于每组数据,输出最长子列表的两个位置坐标lr。

l是该子列表在列表中的起始位置,r是结束位置。

如果多种情况都满足子列表长度最大,输出l最小的一个。

如果不存在这样的子列表输出“None”。

样例输入

34

235

49256

34

235

6633

00

样例输出

13

14

8、跳蚤

Description

Z城市居住着很多只跳蚤。

在Z城市周六生活频道有一个娱乐节目。

一只跳蚤将被请上一个高空钢丝的正中央。

钢丝很长,可以看作是无限长。

节目主持人会给该跳蚤发一张卡片。

卡片上写有N+1个自然数。

其中最后一个是M,而前N个数都不超过M,卡片上允许有相同的数字。

跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长度。

而他最终的任务是跳到距离他左边一个单位长度的地方,并捡起位于那里的礼物。

比如当N=2,M=18时,持有卡片(10,15,18)的跳蚤,就可以完成任务:

他可以先向左跳10个单位长度,然后再连向左跳3次,每次15个单位长度,最后再向右连跳3次,每次18个单位长度。

而持有卡片(12,15,18)的跳蚤,则怎么也不可能跳到距他左边一个单位长度的地方。

当确定N和M后,显然一共有M^N张不同的卡片。

现在的问题是,在这所有的卡片中,有多少张可以完成任务。

Input

两个整数N和M(N<=15,M<=100000000)。

Output

可以完成任务的卡片数。

SampleInput

24

SampleOutput

12

Hint

这12张卡片分别是:

(1,1,4),(1,2,4),(1,3,4),(1,4,4),(2,1,4),(2,3,4),

(3,1,4),(3,2,4),(3,3,4),(3,4,4),(4,1,4),(4,3,4)

9、蛇行矩阵

Problem

蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

Input

本题有多组数据,每组数据由一个正整数N组成。

(N不大于100)

Output

对于每一组数据,输出一个N行的蛇形矩阵。

两组输出之间不要额外的空行。

矩阵三角中同一行的数字用一个空格分开。

行尾不要多余的空格。

SampleInput

5

SampleOutput

1361015

25914

4813

712

11

10、滑雪

Description

Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激。

可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。

Michael想知道载一个区域中最长底滑坡。

区域由一个二维数组给出。

数组的每个数字代表点的高度。

下面是一个例子

12345

161718196

152425207

142322218

131211109

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。

在上面的例子中,一条可滑行的滑坡为24-17-16-1。

当然25-24-23-...-3-2-1更长。

事实上,这是最长的一条。

Input

输入的第一行表示区域的行数R和列数C(1<=R,C<=100)。

下面是R行,每行有C个整数,代表高度h,0<=h<=10000。

Output

输出最长区域的长度。

SampleInput

55

12345

161718196

152425207

142322218

131211109

SampleOutput

25

11、采药

【问题描述】

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。

为此,他想拜附近最有威望的医师为师。

医师为了判断他的资质,给他出了一个难题。

医师把他带到一个到处都是草药的山洞里对他说:

“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。

我会给你一段时间,在这段时间里,你可以采到一些草药。

如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。

如果你是辰辰,你能完成这个任务吗?

【输入文件】

输入文件medic.in的第一行有两个整数T(1<=T<=1000)和M(1<=M<=100),用一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。

接下来的M行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。

【输出文件】

输出文件medic.out包括一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。

【样例输入】

703

71100

691

12

【样例输出】

3

【数据规模】

对于30%的数据,M<=10;

对于全部的数据,M<=100。

12、取石子游戏

Description

有两堆石子,数量任意,可以不同。

游戏开始由两个人轮流取石子。

游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。

最后把石子全部取完者为胜者。

现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

Input

输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。

Output

输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。

SampleInput

21

84

47

SampleOutput

0

1

0

13、滑雪

Description

Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激。

可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。

Michael想知道载一个区域中最长底滑坡。

区域由一个二维数组给出。

数组的每个数字代表点的高度。

下面是一个例子

12345

161718196

152425207

142322218

131211109

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。

在上面的例子中,一条可滑行的滑坡为24-17-16-1。

当然25-24-23-...-3-2-1更长。

事实上,这是最长的一条。

Input

输入的第一行表示区域的行数R和列数C(1<=R,C<=100)。

下面是R行,每行有C个整数,代表高度h,0<=h<=10000。

Output

输出最长区域的长度。

SampleInput

55

12345

161718196

152425207

142322218

131211109

SampleOutput

25

14、敲七

Problem

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)

Input

一个整数N。

(N不大于30000)

Output

从小到大排列的不大于N的与7有关的数字,每行一个。

SampleInput

20

SampleOutput

7

14

17

15、埃及分数

Problem

在古埃及,人们使用单位分数的和(形如1/a的,a是自然数)表示一切有理数。

如:

2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。

对于一个分数a/b,表示方法有很多种,但是哪种最好呢?

首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。

如:

19/45=1/3+1/12+1/180

19/45=1/3+1/15+1/45

19/45=1/3+1/18+1/30,

19/45=1/4+1/6+1/180

19/45=1/5+1/6+1/18.

最好的是最后一种,因为1/18比1/180,1/45,1/30,1/180都大。

给出a,b(0〈a〈b〈1000),编程计算最好的表达方式。

Input

第一行:

N表示有N组测试数据,每组测试数据为一行包含a,b(0〈a〈b〈1000)。

Output

每组测试数据若干个数,自小到大排列,依次是单位分数的分母。

SampleInput

1

1945

SampleOutput

5618

16、炮兵阵地

Description

司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。

一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H"表示),也可能是平原(用"P"表示),如下图。

在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:

如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:

沿横向左右各两格,沿纵向上下各两格。

图上其它白色网格均攻击不到。

从图上可见炮兵的攻击范围不受地形的影响。

现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。

Input

第一行包含两个由空格分割开的正整数,分别表示N和M;

接下来的N行,每一行含有连续的M个字符('P'或者'H'),中间没有空格。

按顺序表示地图中每一行的数据。

N<=100;M<=10。

Output

仅一行,包含一个整数K,表示最多能摆放的炮兵部队的数量。

SampleInput

54

PHPP

PPHH

PPPP

PHPP

PHHP

SampleOutput

6

18、整数划分问题

整数划分是一个经典的问题。

希望这道题会对你的组合数学的解题能力有所帮助。

Input

每组输入是两个整数n和k。

(1<=n<=50,1<=k<=n)

Output

对于每组输入,请输出六行。

第一行:

将n划分成若干正整数之和的划分数。

第二行:

将n划分成k个正整数之和的划分数。

第三行:

将n划分成最大数不超过k的划分数。

第四行:

将n划分成若干奇正整数之和的划分数。

第五行:

将n划分成若干不同整数之和的划分数。

第六行:

打印一个空行。

SampleInput

52

SampleOutput

7

2

3

3

3

Hint:

1、将5划分成若干正整数之和的划分为:

5,4+1,3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1

2、将5划分成2个正整数之和的划分为:

3+2,4+1

3、将5划分成最大数不超过2的划分为:

1+1+1+1+1,1+1+1+2,1+2+2

4、将5划分成若干奇正整数之和的划分为:

5,1+1+3,1+1+1+1+1

5、将5划分成若干不同整数之和的划分为:

5,1+4,2+3

19、谁拿了最多奖学金

Problemdescription

某校的惯例是在每学期的期末考试之后发放奖学金。

发放的奖学金共有五种,获取的条件各自不同:

1)院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;3)成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;4)西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;5)班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。

例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。

Input

输入的第一行是一个整数N(1<=N<=100),表示学生的总数。

接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。

姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。

每两个相邻数据项之间用一个空格分隔。

Output

输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。

如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。

第三行是这N个学生获得的奖学金的总数。

SampleInput

4

YaoLin8782YN0

ChenRuiyi8878NY1

LiXin9288NN0

ZhangQin8387YN1

SampleOutput

ChenRuiyi

9000

28700

20、破解平方数

Problem

给出m个数b1,b2,...,bm,每个数的素数因子都在前t个素数之内,任务是寻找这m个数的非空子集的个数x,使得每个子集的乘积都是一个完全平方数。

例如t=3,则前3个素数为2,3,5。

m=4,这4个数为9,20,500,3,每个数的素因子都是在前3个素数内,则有x=3个非空子集合{9},{20,500},{9,20,500},满足每个集合内的数的乘积是一个完全平方数,输出这样的集合的个数。

Input

每组测试数据的第一行为两个正整数t,m(1≤t≤100,1≤m≤100)第二行为m个数,1<=bi<=109处理至文件结束

Output

每行输出一个整数x,对应每组测试数据

SampleInput

34

9205003

SampleOu

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2