字符串
pubgoso
这个作者很懒,什么都没留下…
展开
-
leetcode 5. 最长回文子串(马拉车)
题目链接思路:马拉车 算法。。主体大概是:先将字符串用一个特殊字符分隔开,这样就不用讨论奇偶了。然后,定义一个ex数组,表示以i位置为中心的回文串的一半长为ex[i](整体即为2*ex[i]+1)然后我们枚举每个中心位i。但是直接枚举的话肯定最劣复杂度会退化至O(N2)O(N^2)O(N2)。所以我们需要用到前面算完的ex数组。记录x+ex[x]最大的位置x,如果x+ex[x]大于i的话,找到i关于x的对称点x-(i-x) 记为y,那么我们就可以利用ex[y]来省略一些判断,即我们可以跳过一些字原创 2021-03-31 23:23:02 · 199 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes
题目链接题意:给你一个长度n,还有2*n-2个字符串,长度相同的字符串一个数前缀一个是后缀,让你把每个串标一下是前缀还是后缀,输出任意解即可。思路;因为不知道前缀还是后缀所以只能搜,但可以肯定的是长度为n-1的字符串一个是前缀一个是后缀,那么只要搜两次就完事了,一个当前缀不行就换另一个当前缀,然后中间判断一下即可。ps:这也是给远古题,没补,因为最不喜欢 字符串的题,,,qwq。#incl...原创 2019-03-19 20:34:20 · 90 阅读 · 0 评论 -
AtCoder Beginner Contest 138 E - Strings of Impurity(序列自动机)
题目链接大意:给你两个字符串a,b.a是可以无限复制的,现在让你找到一个长度使得这个长度的a串存在一个b的子序列。思路:如果a字符串包含所有的b中字符,那么必然有解。我们先跑一个a的序列自动机出来。然后每次贪心的匹配b串的字符,如果需要加上a串就加上,否则跳到下一个匹配的位置即可。#include<bits/stdc++.h> #define LL long long#de...原创 2019-08-19 18:04:00 · 273 阅读 · 0 评论 -
Codeforces Round #579 (Div. 3) D2. Remove the Substring (hard version)(序列自动机+贪心)
题目链接大意:给你两个字符串a,ba,ba,b,让你在a中删除一个子串,使得b仍然是新a串的一个子序列思路:我们用a正着跑一下序列自动机,然后倒着跑一次序列自动机。然后我们思考一下,假设我们删除的子串位于[l,r][l,r][l,r]这个区间,那么子序列如果分成了两部分的话,那么一部分的子序列就在[1,l)[1,l)[1,l),一部分在(r,length](r,length](r,length...原创 2019-08-17 10:43:11 · 147 阅读 · 0 评论