【题意】 求最长回文子串 【分析】 把原字符串翻过来接到后面,中间放一个特殊字符 然后枚举每一个点作为回文串的中心,计算当前位置的后缀和对应的延长位置上的后缀的最长公共前缀 具体的:分类讨论如果i为奇数长度的中心lcp(i,n-i-1),i为偶数长度回文串的中心的一个lcp(i,n-i) 【代码】 ...
分类:
其他好文 时间:
2021-04-28 12:01:17
阅读次数:
0
1,二分查找 LCP 12. 小张刷题计划 1011. 在 D 天内送达包裹的能力 参考解题:c++/python3 全是套路 标准二分查找三大框架之一 Binary Search 1,写出判定一个值是否可以满足条件的函数g 2,找出左右边界(最小的可能值L,与最大的可能值R) 3,while L< ...
分类:
其他好文 时间:
2021-04-27 14:18:51
阅读次数:
0
仅供自己学习 思路: 直接遍历判断即可 class Solution { public: int calculate(string s) { int n=s.length(); int x=1,y=0; for(int i=0;i<n;++i){ if(s[i]=='A') x = 2*x+y; e ...
分类:
其他好文 时间:
2021-04-06 14:14:23
阅读次数:
0
这篇总结所有的字符串都是以 0 为下标起点 Z函数(ExKMP) 对于一个字符串 \(S\) 我们规定一个函数 \(Z[i]\) 表示 \(S\) 与 \(S[i...n-1]\) 的 LCP(最长公共前缀)的长度。 即 \(S[0.....Z[i]-1]\) 与 \(S[i...i+Z[i]-1] ...
分类:
其他好文 时间:
2021-03-06 14:36:41
阅读次数:
0
本题是leetcode中难度系数中等题,字节跳动题库中的题目,思路技巧性比较强,感觉是一道比较典型的题目,特此记录下来,方便后续的思考复盘。 题目描述:小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, ...
分类:
其他好文 时间:
2020-10-05 21:51:57
阅读次数:
17
根据题意,寻找子串出现的第k次的开头。寻找第k大,一般可以想到用主席树来维护。 但是这题还需要更多的转化,首先想到我们如果想知道子串匹配,一个可以考虑kmp,但是因为询问过多,不太科学。 一般还有两种,一种是哈希算法,一种是后缀数组求lcp。考虑哈希算法,感觉可做性不是很大,因为他要多次匹配。考虑后 ...
分类:
编程语言 时间:
2020-09-18 02:17:50
阅读次数:
44
出大问题,我原来学了几天,然后刷了七八题吧,之后将近半年一次没用到, 今天回头一想后缀数组?????????? 所以来总结一下,省的模板题都不会了。 rk[i] 第i个后缀的排名; SA[i] 排名为i的后缀位置; Height[i] 排名为i的后缀与排名为(i-1)的后缀的LCP 1 POJ - ...
分类:
编程语言 时间:
2020-07-26 11:16:44
阅读次数:
72
LCP 06. 拿硬币 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。 示例 1: 输入:[4,2,1] 输出:4 解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总 ...
分类:
其他好文 时间:
2020-06-19 12:22:07
阅读次数:
51
Description link Solution 看到这种题,首先是两个数作差 然后我们把所有的差连起来,每个序列和每个序列中间加上一个极大值 然后求出来 \(sa\) 和 \(height\) 数组,并且把所 要求的就是在每 \(n\) 个串的 \(lcp\) (这里好像就可以直接$height ...
分类:
其他好文 时间:
2020-06-14 12:48:37
阅读次数:
65
考虑可以枚举字符串上的两个点,求出两个点所对应后缀的$LCP$和所对应前缀的$LCS$,两点之间的距离为$len$,则这两个点对答案的贡献为: \[ \frac{LCS+LCP+L-1}{L} \] 取最大值即为答案,可以通过下图来理解这个式子: 首先已经将字符串分为了若干个长度为$len$的块,箭 ...
分类:
其他好文 时间:
2020-06-14 11:18:27
阅读次数:
69