
字符串
文章平均质量分 51
Ghostkkkk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模板_扩展kmp
int nxt[MAXN],extend[MAXN]; char S[MAXN],T[MAXN]; void GetNext(char *T) { int a=0; int Tlen=strlen(T); next[0]=Tlen; while(a next[1]=a; a=1;原创 2017-08-21 08:09:53 · 235 阅读 · 0 评论 -
CF 954I - Yet Another String Matching Problem FFT 字符串
题意:给你两个字符串S,T。对于每个T长度的S子串,你需要求出他们的“距离”。你每次可以将一个字符变成另一个字符,对于两个串都变,距离就是变化次数最小值使得两串相同。字符集a - f。题解:如果长度相同,和CF另一题一模一样,只要把同一位置的两个字符连边,然后并查集一下就可以了。现在还是一样,只是多了FFT,我们枚举转换字符i, j, 6 * 6 = 36种,然后把S中...原创 2018-10-09 14:49:03 · 273 阅读 · 0 评论 -
Wannafly挑战赛19 D.回文 回文树或Manacher 前缀和
链接:https://www.nowcoder.com/acm/contest/131/D来源:牛客网 题目描述字符串 S 只包含小写英文字母。有四种操作,每次操作你可以选择其中一种:删除字符串的第一个字母。删除字符串的最后一个字母。在字符串的头部添加任意一个你想要的字母。在字符串的尾部添加任意一个你想要的字母。删除一个第 i 种英文字母需要的花费是 Ai,添加一个第 i 种...原创 2018-10-17 21:48:54 · 217 阅读 · 0 评论 -
牛客国庆集训派对Day5 H - 我不爱她 Hash KMP
链接:https://www.nowcoder.com/acm/contest/205/H来源:牛客网 题目描述终于活成了自己讨厌的样子。天空仍灿烂,它爱着大海。你喜欢大海,我爱过你。世界上充满了巧合。我们把每句话当成一个字符串,我们定义a对b的巧合值为a的最长后缀的长度并且它是恰好是b的前缀,这里的后缀或者前缀包括字符串的本身。比如字符串“天空仍灿烂她喜欢大海”对“她喜...原创 2018-10-06 13:52:37 · 300 阅读 · 0 评论 -
CF 808G - Anthem of Berland AC自动机或KMP DP
题意:给你一个带?的字符串S,和一个字符串T,问把?替换后最多能匹配多少次T?可以重叠匹配。题解:这种肯定是要DP的。怎么DP呢?AC自动机上的DP问题很多,这个也可以用AC自动机。dp[i][j]表示当前在S串的i位置,在AC自动机的j状态时能完整匹配T的次数。 当i是问号时枚举26个字母转移,不是问号直接转移到这个字符。滚动数组一下即可。当然KMP也是可以的...原创 2018-09-22 20:59:48 · 426 阅读 · 0 评论 -
牛客国庆集训派对Day3 - F.Palindrome 回文树 后缀自动机
链接:https://www.nowcoder.com/acm/contest/203/F来源:牛客网 题目描述修修在蒜头送给他的奖杯上看到了一个长度为n的字符串s。他希望从s中选择两个非空子串a,b(可以有重叠的部分),使得它们拼起来是一个回文串。修修很快就算出了方案数,他听说你也会数数,就让你也来解决一下这个问题。两个方案不同当且仅当a,b中至少一个的长度或位置不同。输入描...原创 2019-01-07 20:14:29 · 530 阅读 · 0 评论 -
CF 827E - Rusty String FFT 字符串 循环节
题意:给你一个字符串,只含'V', 'K', '?',其中'?’可能是任意这两个字符之一,问可能的循环节?(循环节不用整除N,只要满足s[i] = s[i + k])题解:找循环节,就是找所有公共前后缀长度。现在有'?’ ,属于模糊匹配, 只能用FFT。等于0的话就可以匹配,拆开是,做三次FFT即可。(貌似不用做三次,别人都是做一次,我的做法常数比较大,贴一个别人的博客:...原创 2018-09-20 22:08:01 · 313 阅读 · 0 评论 -
CF 1051E - Vasya and Big Integers 扩展KMP DP
题意:给你一个由数字构成的字符串,问你有多少种划分方式,使得每段不含前导0,并且每段的数字大小在[l, r]之间。题解:很明显的DP。dp[i]为下标为i时的划分数,设ll为以i+1开始,最小的大于l的位置, rr为以i+1开始,最大的小于r的位置,那么dp[ll], dp[ll + 1]......dp[rr]都要+d[i],用前缀和或者线段树都行。关键在与怎么求ll, ...原创 2018-10-02 15:27:39 · 524 阅读 · 0 评论 -
CF 932G - Palindrome Partition 回文树 技巧 DP
题意:给你一个字符串,问有多少种划分,使得如果划分后有k个部分,则sub[i] = sub[k - i + 1],s[i]是第i个部分代表的串,k必须是偶数。题解:普通的回文串是s[1]对应s[n],s[2]对应s[n - 1].....这里有不同,是s[1] 对应 s[n - j], s[2]对应s[n - j + 1],注意到现在对应关系是双方下标都在递增,而普通回文串是第一个下标...原创 2018-09-19 15:12:18 · 333 阅读 · 0 评论 -
CF 965E Short Code 贪心 字典树 启发式合并
题意:给你N个字符串,每个字符串可以缩写为他的前缀,但是必须保证所有串缩写后不重复,并且最后总长度最小。题解:先建立字典树,然后我们可以想到,在dfs的时候,如果当前节点本来没有串,那么他可以存他子树中某个串,我们用优先队列找到他子树的最长的节点,然后把这个节点代表的串用当前节点串代替,这样贪心即可。但是对于每颗子树都要建立一个优先队列存他子树中所有的串长。对于这点我们可以用启发式...原创 2018-09-06 21:35:30 · 205 阅读 · 0 评论 -
CF 963D - Frequency of String AC自动机 均摊复杂度
题意:给你一个串和q次询问。每次询问给你一个k和一个字符串qi,问你原串当中包含这个字符串k次的最短子串长度是多少。每次询问的子串不同。 <= 1e5.题解:试想,如果对于每个查询串i每我们知道了他在原串中 出现的位置集合Ri,那么这个串我们可以通过|Ri|的时间找到答案。对于所有的串,要找到他的Ri,其实只要把他们插入AC自动机里面,然后用原串进行匹配即可。...原创 2018-09-11 23:58:14 · 369 阅读 · 0 评论 -
SPOJ 7258 Lexicographical Substring Search 后缀自动机找字典序第K小子串
Little Daniel loves to play with strings! He always finds different ways to have fun with strings! Knowing that, his friend Kinan decided to test his skills so he gave him a string S and asked him Q q...原创 2018-08-20 21:20:07 · 912 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Qingdao J. Suffix 二分 HASH LCP
https://nanti.jisuanke.com/t/18520题意:给你n个字符串,你需要依次从每个字符串选一个后缀拼接起来,问字典序最小的串是什么?题解:贪心从后往前看,最后一个串一定选择字典序最小的后缀,然后把这个后缀拼接到第n - 1个串,重复这个步骤就行了。具体实现:从后往前遍历,每次找当前串的最小后缀,这个可以对于当前下标和当前最小后缀下标二分+hash找到...原创 2018-10-09 17:12:44 · 695 阅读 · 0 评论