ACM湖南省大学生程序设计大赛题目及比赛排名Word文档下载推荐.docx
《ACM湖南省大学生程序设计大赛题目及比赛排名Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ACM湖南省大学生程序设计大赛题目及比赛排名Word文档下载推荐.docx(49页珍藏版)》请在冰豆网上搜索。
样例输入
样例输出
3
owe
too
theee
1
2
题目B
报数游戏
n个人站成一行玩一个报数游戏。
所有人从左到右编号为1到n。
游戏开始时,最左边的人报1,他右边的人报2,编号为3的人报3,等等。
当编号为n的人(即最右边的人)报完n之后,轮到他左边的人(即编号为n-1的人)报n+1,然后编号为n-2的人报n+2,以此类推。
当最左边的人再次报数之后,报数方向又变成从左到右,依次类推。
为了防止游戏太无聊,报数时有一个特例:
如果应该报的数包含数字7或者是7的倍数,他应当用拍手代替报数。
下表是n=4的报数情况(X表示拍手)。
当编号为3的人第4次拍手的时候,他实际上数到了35。
给定n,m和k,你的任务是计算当编号为m的人第k次拍手时,他实际上数到了几。
输入包含不超过10组数据。
每组数据占一行,包含三个整数n,m和k(2<
=n<
=100,1<
=m<
=n,1<
=k<
=100)。
输入结束标志为n=m=k=0。
对于每组数据,输出一行,即编号为m的人第k次拍手时,他实际上数到的那个整数。
431
432
433
434
000
17
21
27
35
题目C
多连块拼图
多连块是指由多个等大正方形边与边连接而成的平面连通图形。
--维基百科
给一个大多连块和小多连块,你的任务是判断大多连块是否可以由两个这样的小多连块拼成。
小多连块只能平移,不能旋转或者翻转。
两个小多连块不得重叠。
左下图是一个合法的拼法,但右边两幅图都非法。
中间那幅图的问题在于其中一个小多连块旋转了,而右图更离谱:
拼在一起的那两个多连块根本就不是那个给定的小多连块(给定的小多连块画在右下方)。
输入最多包含20组测试数据。
每组数据第一行为两个整数n和m(1<
=10)。
以下n行描述大多连块,其中每行恰好包含n个字符*或者.,其中*表示属于多连块,.表示不属于。
以下m行为小多连块,格式同大多连块。
输入保证是合法的多连块(注意,多连块至少包含一个正方形)。
输入结束标志为n=m=0。
对于每组测试数据,如果可以拼成,输出1,否则输出0。
43
.**.
****
....
**.
.**
...
33
***
*.*
*..
42
*.
00
题目D
多连块分解
给定一个大多连块,你的任务是把它分解成至少两个全等(不能翻转或者旋转)的小多连块。
下面的左图是一个合法的分解,右边两幅图不合法。
中间那幅图的问题在于其中一个小多连块旋转了,而右图的问题在于其中一个小多连块翻转了。
分解出的小多连块数量越少越好。
注意:
本题一定有解,因为至少可以分解成一大堆单位正方形。
输入最多包含30组测试数据。
每组数据第一行为一个整数n(1<
输入保证是合法的多连块。
输入多连块至少包含一个正方形,至多包含二十个正方形。
输入结束标志为n=0。
对于每组数据,输出大多连块的分解方案。
每个正方形用一个大写字母表示它所在的小多连块。
不同的小多连块应有不同的字母表示。
如果有多组解,输出字典序最小的。
换句话说,如果我们把输出的n行字符串逐行连接一个长字符串(比如样例2,连接后的字符串为AABB),这个字符串的字典序应该尽量小。
每组测试数据的输出后打印一个空行。
5
..**.
.****
****.
.**..
.....
**
..AA.
.AABB
AABB.
.BB..
AA
BB
题目E
盒子游戏
有两个相同的盒子,其中一个装了n个球,另一个装了一个球。
Alice和Bob发明了一个游戏,规则如下:
Alice和Bob轮流操作,Alice先操作。
每次操作时,游戏者先看看哪个盒子里的球的数目比较少,然后清空这个盒子(盒子里的球直接扔掉),然后把另一个盒子里的球拿一些到这个盒子中,使得两个盒子都至少有一个球。
如果一个游戏者无法进行操作,他(她)就输了。
下图是一个典型的游戏:
面对两个各装一个球的盒子,Bob无法继续操作,因此Alice获胜。
你的任务是找出谁会获胜。
假定两人都很聪明,总是采取最优策略。
输入最多包含300组测试数据。
每组数据仅一行,包含一个整数n(2<
=109)。
对于每组数据,输出胜者的名字。
4
Alice
Bob
题目F
打怪升级
对于多数RPG游戏来说,除了剧情就是打怪升级。
本题的任务是用最短的时间取得所有战斗的胜利。
这些战斗必须按照特定的顺序进行,每打赢一场,都可能会获得一些补药,用来提升力量。
本题只有两种补药:
“加1药”和“乘2药”,分别让你的力量值加1和乘以2。
战斗时间取决于你的力量。
每场战斗可以用6个参数描述:
p1,p2,t1,t2,w1,w2。
如果你的力量小于p1,你将输掉战斗;
如果你的力量大于p2,需要t2秒赢得战斗;
如果力量位于p1和p2(包括p1和p2),战斗时间从t1线性递减到t2。
比如p1=50,p2=75,t1=40,t2=15,你的力量为55,则战斗获胜需要35秒。
注意,战斗时间可能不是整数。
最后两个参数w1和w2分别表示战斗胜利后获得的“加1药”和“乘2药”的数量。
注意,你不一定要立刻使用这些补药,可以在需要的时候再用,但不能在战斗中使用补药。
按顺序给出每场战斗的参数,输出赢得所有战斗所需的最短总时间。
战斗必须按顺序进行,且不能跳过任何一场战斗。
输入最多包含25组测试数据。
每组数据第一行为两个整数n和p(1<
=1000,1<
=p<
=100),即战斗的场数和你的初始力量值。
以下n行每行6个整数p1,p2,t1,t2,w1,w2(1<
=p1<
p2<
=t2<
t1<
=100,0<
=w1,w2<
=10),按顺序给出各场战斗的参数。
输入结束标志为n=p=0。
对于每组数据,输出最短总时间(单位:
秒),保留两位小数。
如果无解,输出“Impossible”(不含引号)。
155
50754015100
255
31
122105
122110
1100100100
17
415352300
11
232100
35.00
60.00
41.00
31.73
Impossible
题目G
最优对称路径
给一个n行n列的网格,每个格子里有一个1到9的数字。
你需要从左上角走到右下角,其中每一步只能往上、下、左、右四个方向之一走到相邻格子,不能斜着走,也不能走出网格,但可以重复经过一个格子。
为了美观,你经过的路径还必须关于“左下-右上”这条对角线对称。
下图是一个6x6网格上的对称路径。
你的任务是统计所有合法路径中,数字之和最小的路径有多少条。
每组数据第一行为一个整数n(2<
以下n行每行包含n个1到9的数字,表示输入网格。
对于每组数据,输出合法路径中,数字之和最小的路径条数除以1,000,000,009的余数。
111
211
ProblemH
PiecesandDiscs
ThereisarectangleontheCartesianplane,whosebottom-leftcorneris(0,0),top-rightcorneris(L,W).Youdrawsomelinesegmentstodividetherectangleintopieces.Eachlinesegmentconnectstwopointsontheboundaryoftheoriginalrectangle(thesetwopointsareguaranteedtobeondifferentsidesoftherectangle).
Finally,youdrawsomediscs(adiscisacirclewithitsinterior),andyourtaskistofindoutallthepieceseachdiscisintersectingwith(i.e.piecesthathavenon-zerointersectionareawiththedisc),andoutputtheirareasinincreasingorder.Anexamplepictureisshownbelow:
Input
Therewillbeatmost100testcases.Eachtestcasebeginswithfourintegern,m,L,W(1<
=n,m<
=20,1<
=L,W<
=100),wherenisthenumberoflinesegments,misthenumberofdiscs.Eachofthenextnlinesdescribesalinesegmentwithforintegersx1,y1,x2,y2,thatisasegmentconnecting(x1,y1)and(x2,y2).Thesetwopointsareguaranteedtobeondifferentsidesoftheoriginalrectangle.Eachofthelastmlinecontainsthreeintegersx,y,R(0<
=x<
=L,0<
=y<
=W,1<
=R<
=100),indicatingthatthedisciscenteredat(x,y),whoseradiusisR.Notwosegmentswillbethesame.Inputisterminatedbyn=m=L=W=0.
Output
Foreachdisc(sameorderasininput),printthenumberofpiecesthatthediscisintersectingwith,andtheareasofthesepiecesinasingleline.Theareasshouldbesortedinincreasingorder,andeachareashouldberoundedto2digitsafterthedecimalpoint.Printablanklineaftereachtestcase.
SampleInput
OutputfortheSampleInput
411010
04104
10710
510101
21060
373
0000
40.5010.0310.7718.70
ProblemI
SuperPoker
Ihaveasetofsuperpokercards,consistingofaninfinitenumberofcards.Foreachpositiveintegerp,thereareexactlyfourcardswhosevalueisp:
Spade(S),Heart(H),Club(C)andDiamond(D).Therearenocardsofothervalues.
Giventwopositiveintegersnandk,howmanywayscanyoupickupatmostkcardswhosevaluessumton?
Forexample,ifn=15andk=3,onewayis3H+4S+8H,shownbelow:
Therewillbeatmost20testcases,eachwithtwointegersnandk(1<
=109,1<
=10).Theinputisterminatedbyn=k=0.
Foreachtestcase,printthenumberofways,modulo1,000,000,009.
21
22
23
505
10
1823966
ProblemJ
SuperPokerII
Ihaveasetofsuperpokercards,consistingofaninfinitenumberofcards.Foreachpositivecompositeintegerp,thereareexactlyfourcardswhosevalueisp:
Spade(S),Heart(H),Club(C)andDiamond(D).Therearenocardsofothervalues.By“compositeinteger”,wemeanintegersthathavemorethan2divisors.Forexample,6isacompositeinteger,sinceithas4divisors:
1,2,3,6;
7isnotacompositenumber,since7onlyhas2divisors:
1and7.Notethat1isnotcomposite(ithasonly1divisor).
Givenapositiveintegern,howmanywayscanyoupickupexactlyonecardfromeachsuit(i.e.exactlyonespadecard,oneheartcard,oneclubcardandonediamondcard),sothatthecardvaluessumton?
Forexample,ifn=24,onewayis4S+6H+4C+10D,shownbelow:
Unfortunately,someofthecardsarelost,butthismakestheproblemmoreinteresting.Tofurthermaketheproblemevenmoreinteresting(andchallenging!
),I’llgiveyoutwootherpositiveintegersaandb,andyouneedtofindoutalltheanswersforn=a,n=a+1,…,n=b.
Theinputcontainsatmost25testcases.Eachtestcasebeginswith3integersa,bandc,wherecisthenumberoflostcards.Thenextlinecontainscstrings,representingthelostcards.EachcardisformattedasvalueS,valueH,valueCorvalueD,wherevalueisacompositeinteger.Notwolostcardsarethesame.Theinputisterminatedbya=b=c=0.Therewillbeatmostonetestcasewherea=1,b=50,000andc<
=10,000.Forothertestcases,1<
=a<
=b<
=c<
=10.
Foreachtestcase,printb-a+1integers,oneineachline.Sincethenumbersmightbelarge,youshouldoutputeachintegermodulo1,000,000.Printablanklineaftereachtestcase.
12202
4S6H
ProblemK
RMQwithShifts
InthetraditionalRMQ(RangeMinimumQuery)problem,wehaveastaticarrayA.Thenforeachquery(L,R)(L<
=R),wereporttheminimumvalueamongA[L],A[L+1],…,A[R].Notethattheindicesstartfrom1,i.e.theleft-mostelementisA[1].
Inthisproblem,thearrayAisnolongerstatic:
weneedtosupportanotheroperationshift(i1,i2,i3,…,ik)(i1<
i2<
...<
ik,k>
1):
wedoaleft“circularshift”ofA[i1],A[i2],…,A[ik].
Forexample,ifA={6,2,4,8,5,1,4},thenshift(2,4,5,7)yields{6,8,4,5,4,1,2}.Afterthat,shift(1,2)yields{8,6,4,5,4,1,2}.
Therewillbeonlyonetestcase,beginningwithtwointegersn,q(1<
=100,000,1<
=q<
=120,000),thenumberofintegersinarrayA,andthenumberofoperations.Thenextlinecontainsnpositiveintegersnotgreaterthan100,000,theinitialelementsinarrayA.Eachofthenextqlinescontainsanoperation.Eachoperationisformattedasastringhavingnomorethan30characters,withnospacecharactersinside.Alloperationsa