随笔分类 - 字符串
摘要:#解题思路 题面 两倍s1变成字符串匹配,用KMP。 KMP预先处理模式串(短串)的$next[]$数组,$next[]$的意思为自我匹配一样的值的下一个的位置。 复杂度$O(n)$ #代码 class Solution { public: bool isFlipedString(string s1
阅读全文
摘要:EOJ_3653. 她的名字 预处理 组合数 "题目" 发现字符串比较短,才 $2000$ 而且只有问后两位,所以可以预处理 查到$x$后面有$sum$个$y$,且$s_i=x$,$n$是询问的长度 那么$x$和$y$的答案就是$( ^{i 1} _{n 2}) sum$ 所以就预处理枚举$x,y,
阅读全文
摘要:Luogu_P2536 [AHOI2005]病毒检测 trie树+dfs "题目链接" 这两个符号比较有意思 可以把所有的串都先建到trie树上 然后用病毒的模式串在上面搜索 处理这两个符号就可以通过搜索次序解决 主要可以看代码 ~~问的是非病毒,WA了~~ ~~一个符号可以不取,又WA了~~ 代码
阅读全文
摘要:Luogu_P3435 [POI2006]OKR Periods of Words KMP "题目链接" ~~阅读理解~~ 其实就是B是A的前缀 那么叠加B成为BB,假如A是BB的前缀那么B就是合法 问A的所有前缀的最大合法前缀的和 emmm感性理解吧 那么读懂题面也就可以解决了 KMP的$nxt[
阅读全文
摘要:Luogu_P1026 统计单词个数 DP+string "题目链接" 题面是个什么玩意 选了this不能选th的原因是t被占用 所以只要避开第一个字母就行 字符串可以用string string的substr(l,len)函数表示把l之后长度为len的字符拿出来 find(x)则是查询字符串x第一
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P1659 这个题有一个需要注意的地方。 打个比方。 一个和谐团体5有个人。也可以说是3个人。也可以说是1个人。 所以要重复计算。之前的答案之后还要继续算。 所以需要用快速幂,要不然T到飞起。 用桶把所有的长度的个数都
阅读全文
摘要:manacher算法是在O(n)的复杂度内求回文串长度的算法。 算法过程如下。 先在所有字符之间加上一种没有意义的字符。 比如“#”,“|”等。来去除偶数回文和奇数回文的区别。 再在第0位加上“~”,这样就可以保证不会出范围。 其中rb表示当前mid的回文串右边界。 枚举中间点 i 如果 i 在右边
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P4503 可以用哈希来做。 因为题目说两两不重复所以更简单了。 正着一遍反着一遍。 枚举中间点求两边。 若相等则是相似。 不重复所以不用管中间这位。 代码如下。
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P3966 大意:小张最近在忙毕设,所以一直在读论文。一篇论文是由许多单词组成但小张发现一个单词会在论文中出现很多次,他想知道每个单词分别在论文中出现了多少次。 这次没有文本串。 用了个奇妙的方法。 a[x] 表示第x
阅读全文
摘要:AC自动机的板子简单版。 代码如下。 AC自动机节点存什么信息比较重要。 各个题目都不太一样。 需要个别的分析。 具体题目见题解。 加强版:
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P4551 大意:给定一棵 n 个点的带权树,结点下标从 1 开始到 N 。寻找树中找两个结点,求最长的异或路径。 因为 a xor a = 0 所以只需要dfs求一遍所有点到根节点的异或和。 然后改为01串放入tri
阅读全文

浙公网安备 33010602011771号