ACM试题1159 回文词_第1页
ACM试题1159 回文词_第2页
ACM试题1159 回文词_第3页
ACM试题1159 回文词_第4页
ACM试题1159 回文词_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、1159 回文词报告人:李鑫问题描述:n回文词是一种对称的字符串。任意给定一个字符串,通过插入假设干字符,都可以变成回文词。次题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。例如:n比方 “Ab3bd插入2个字符后可以变成回文词“dAb3bAd或“Adb3bdA,但是插入少于2个的字符无法变成回文词。n注:此问题区分大小写数学描述:n对于一个串S=a1a2an,求最小的m,使得存在一个串S=b1b2bm+n满足S为S的一个子串可不连续,并且bi=bm+n-i+1(i=1m+n)。分析:n设S 各个字符中不为S中字符的字符位置集为X 。故是不可能同时成立的。所以可以把S中的字符分成

2、两类A,B:A:S中与此字符对称的字符出现在S-S中B:S中与此字符对称的字符出现在S中iX, m+n-i+1Xn比方把Ab3bd扩充成 nd A b 3 b A d红色的字母是添加的n1 2 3 4 5 6 7n位置2,7的对称位置的字符不属于S,n故A=2, 7n位置3,4,5的对称位置的字符属于S,n故B=3, 4, 5分析续:n有以下结论:n|A|+|B|=|S|=nn|A|=|X|nB是回文词且B是S的子串n|X|=|A|=n-|B|,问题转化为求S的最大回文子串B。算法设计:S=a1a2an设T=c1c2cn =ana2 a1设L(i,j)表示a1a2ai和c1c2cj的最长公共子序列的长度。那么有下面的结论:算法设计: max|B|= max 2*max(L(i,n-i), 2*max(L(i,n-1-i)+1 其中L(i,j)可以用如下递推公式得到:000( , )(1,1) 1max( ( ,1), (1, )ijijiorjL i jL ijacL i jL ijac更容易想到的算法:n令c (i,j)表示将子串aiai+1aj变成回文词的最小添加字符数。那么这此问题就是要求c(1,n)。nc(i,j)满足如下递推关系: 0c(, )(1,1)min(c(,1),c(1, ) 1ijijiji

温馨提示

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

评论

0/150

提交评论