周源_《浅谈最小表示法在字符串循环同构问题中的应用》-111qqz.pptVIP

  • 1
  • 0
  • 约5.19千字
  • 约 40页
  • 2016-08-31 发布于天津
  • 举报

周源_《浅谈最小表示法在字符串循环同构问题中的应用》-111qqz.ppt

周源_《浅谈最小表示法在字符串循环同构问题中的应用》-111qqz

浅析“最小表示法”思想 在字符串循环同构问题中的应用 前言 “最小表示法”比起动态规划、贪心等思想,在当今竞赛中似乎并不是很常见。但是在解决判断“同构”一类问题中却起着重要的作用。 本文即将讨论字符串中的同构问题,如何巧妙地运用最小表示法来解题呢,让我们继续一起思考吧。 问题引入 明确几个记号和概念 ⑴.|s|=length(s),即s的长度。 明确几个记号和概念 ⑷.定义s的一次循环s(1)=s[2→|s|]+s[1]; s的k次循环(k1)s(k)为s(k-1)的一次循环; s的0次循环s(0)=s。 明确几个记号和概念 ⑸.如果字符串s1可以经过有限次循环得到s2,则称s1和s2是循环同构的。例如: 明确几个记号和概念 ⑹.设有两个映射f1,f2:A→A, 定义f1和f2的连接f1?f2(x)=f1(f2(x))。 问题的数学语言表达形式 给定两个长度相等的字符串,|s1|=|s2|, 判断它们是否是循环同构的。 枚举算法 易知,s1的不同的循环串最多只有|s1|个, 即s1,s1(1),s1(2),…s1(|s1|-1), 所以只需要把他们一一枚举, 然后分别与s2比较即可。 枚举算法 优点:思维简单,易于实现。 时间复杂度是O(N2)级(N=|s1|=|s2|)。 构造新的算法 首先构造新的模型: S=s1+s1为主串,s2为模式串。 如果s

文档评论(0)

1亿VIP精品文档

相关文档