摘要: 【算法简述】 马拉车(Manacher)算法是在O(n)时间内解决寻找源字符串的最长回文子串S的问题的算法。 朴素算法情况下对于每一个S[i]都要左右遍历其最大回文子串,所以时间复杂度是O(n2) 【算法原理】 充分利用之前求得的S【j】,为求S【i】服务。 预处理:在每个字符左右两边插入#将字符串 阅读全文
posted @ 2018-09-26 10:16 西风show码 阅读(2822) 评论(2) 推荐(0) 编辑
摘要: 【算法概述】 ST表:一种利用dp求解区间最值的倍增算法。 定义:f[i][j]表示i到i+2^j-1这段区间的最大值。 预处理:f[i][0]=a[i]。即i到i区间的最大值就是a[i]。 状态转移:将f[i][j]平均分成两段,一段为f[i][j-1],另一段为f[i+2^(j-1)][j-1] 阅读全文
posted @ 2018-09-26 10:12 西风show码 阅读(174) 评论(0) 推荐(0) 编辑