- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
知识精炼(二)
主讲人:邓哲也
HDU4763ThemeSection
给你一个字符串S。
请你把这个S划分成EAEBE的形式。
其中A和B可以包含任意个(可以是0个)字符。
求E的最大长度。
字符串的长度之和不会超过106
HDU4763ThemeSection
观察EAEBE。
首先要保证E既是S的前缀又是S的后缀。
且去除掉前缀E和后缀E之后,中间剩下的还要出现一次E。
对S跑一次扩展KMP中的Z算法。
如果i+Z[i]-1==n,就说明S[i..n]可以作为E。
那么就要求在S[Z[i]+1..i-Z[i]]中,还得存在一个j满足Z[j]≥Z[i]
HDU4763ThemeSection
问题变成了先找i+Z[i]-1=n的i
然后在[Z[i]+1..i-Z[i]]中,查询Z的最大值,如果比
Z[i]大,那么就可以把Z[i]作为答案。
最后取最大值即可。
查询区间最大值我们可以用线段树/ST表来维护。
最后的时间复杂度都是O(nlogn)
HDU6153ASecret
给定两个字符串S和T。对于T的每个后缀,L[i]表示
后缀的长度,N[i]表示这个后缀在S中出现的次数。
求∑L[i]N[i]
|S|,|T|≤106
例如S=abababab,T=aba
答案=3*3+3*2+4*1=19
HDU6153ASecret
把T反转一下,这样后缀就变成了前缀。
如何求T的每个前缀在S中出现了几次?
运用extend数组来帮忙。
比如extend[i]=4
说明S[i..i+3]=T[1..4],那么T的前四个前缀出现的
次数就都会加一。
因此每次只要对[1,extend[i]]这个区间加一即可。
HDU6153ASecret
这道题求的是∑L[i]N[i]
因此我们可以算出次数再最后统计乘积之和。
也可以对于extend[i],直接把1+2+3+…+extend[i]计入
答案。
时间复杂度O(n)
下节课再见
您可能关注的文档
- 编译原理试题集33493.doc
- 构件技术试题集60288.doc
- 计算机导论试题集9448.doc
- 计算机导论试题集95863.doc
- 计算机系统结构试题集59433.doc
- 计算机组成原理试题集94005.doc
- 离散数学结构试题集47059.doc
- 嵌入式系统软件开发试题集70552.doc
- 人工智能试题集89422.doc
- 数据库原理试题集4405.doc
- 液晶聚合物薄膜:开启集成与可重构光路系统新时代.docx
- 破局与革新:哈尔滨Z小学高年级作文教学困境与优化策略探究.docx
- 微博场域下雾霾议题中政府媒体与公众的议程互动及优化策略.docx
- 词块教学法对大学英语写作水平提升的实证探究:基于对比实验与效果分析.docx
- 网络服务提供者安全保障义务的法理剖析与制度构建.docx
- 干扰条件下IRS辅助毫米波波束赋形技术的多维探索与创新研究.docx
- 破局与谋新:国内舞蹈类体育运动项目产业化营销的深度剖析与展望.docx
- 小学生英语学习焦虑状况的深度剖析与应对策略研究.docx
- 机载重轨InSAR相干变化检测方法的原理应用与优化研究.docx
- 破局与重塑:大学新生入学教育困境与优化路径探究.docx
文档评论(0)