2000年第12届国际信息学奥赛试题

2000年第12届国际信息学奥赛试题

ID:42179531

大小:5.13 MB

页数:94页

时间:2019-09-09

2000年第12届国际信息学奥赛试题_第1页
2000年第12届国际信息学奥赛试题_第2页
2000年第12届国际信息学奥赛试题_第3页
2000年第12届国际信息学奥赛试题_第4页
2000年第12届国际信息学奥赛试题_第5页
资源描述:

《2000年第12届国际信息学奥赛试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2000年第12届国际信息学奥赛试题解析中国第一题回文词Day1.PalindromeTasktype:Batch.SourceoffilePalin*.TimeLimitperTestCase:6secondsPROBLEMApalindromeisasymmetricalstring,thatis,astringreadidenticallyfromlefttorightaswellasfromrighttoleft.Youaretowriteaprogramwhich,givenastring,determinestheminimalnumberofcharacterstobeins

2、ertedintothestringinordertoobtainapalindrome.Asanexample,byinserting2characters,thestring“Ab3bd”canbetransformedintoapalindrome(“dAb3bAd”or“Adb3bdA”).However,insertingfewerthan2charactersdoesnotproduceapalindrome.INPUTTheinputfilenameisPALIN.IN.Thefirstlinecontainsoneinteger:thelengthoftheinputstr

3、ingN,3≤N≤5000.ThesecondlinecontainsonestringwithlengthN.Thestringisformedfromuppercaselettersfrom‘A’to‘Z’,lowercaselettersfrom‘a’to‘z’anddigitsfrom‘0’to‘9’.Uppercaseandlowercaselettersaretobeconsidereddistinct.OUTPUTTheoutputfilenameisPALIN.OUT.Thefirstlinecontainsoneinteger,whichisthedesiredminim

4、alnumber.EXAMPLEINPUTANDOUTPUTPALIN.INPALIN.OUT25Ab3bd94参考译文:Day1回文词(题型:提交式;文件名:palin.*;时间限制:6s)问题描述:回文词是一种对称的字符串。也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是编写一个程序,求出将给定字符串变成回文词所需插入的最少字符数。比如:字符串“Ab3bd”,在插入两个字符后可以变成一个回文词(“dAb3bAd”或“Adb3bdA”)。然而,插入两个以下的字符无法使它变成一个回文词。输入:输入文件的文

5、件名是palin.in。文件的第一行包含一个整数N,表示给定字符串的长度,3≤N≤5000。文件的第二行是一个长度为N的字符串。字符串仅由大写字母“A”到“Z”,小写字母“a”到“z”和数字“0”到“9”构成。大写字母和小写字母将被认为是不同的。输出:输出文件名是palin.out,文件只有一行,包含一个整数,表示需要插入的最少字符数。输入输出样例:Palin.inpalin.out25Ab3bd算法分析:本题可以采用动态规划方法来求解。令Gh[i,j]表示将原串S从第j位开始长度为i的子串s’变成回文词的最小添加字符数。按S’的长度大小依次进行递推求解:Gh[i,j]=94Gh[i–2,

6、j+1]若S[j]=S[i+j–1],即首尾对称,1+Min{Gh[i–1,j],Gh[i–1,j+1]}若S[j]<>S[i+j–1]。2≤i≤n,1≤j≤n-i+1显然,当i=1或0时,Gh值均为0。为了节省空间,我们可以用两个一维数组滚动求解。参考程序如下。参考程序:{Pascal语言}programPalin;vars:array[1..5100]ofchar;n:integer;ans:integer;gh2,gh1,gh:array[1..5100]ofinteger;procedureini;varinf:text;i:integer;beginassign(inf,‘pal

7、in.in’);reset(inf);readln(inf,N);fillchar(s,sizeof(s),0);fori:=1toNdoread(inf,s[i]);close(inf);end;proceduremain;var94k,i:integer;beginfillchar(Gh2,sizeof(Gh2),0);fillchar(Gh1,sizeof(Gh1),0);fori:=1toN–1doifs[i]◇

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。