--------字符串--------
文章平均质量分 71
Faithfully__xly
这个作者很懒,什么都没留下…
展开
-
字符串dp - WOJ#1223 子串
传送门Analysis首先这个名字“字符串dp”就是我乱取的……反正在字符串上搞嘛第二次做,在知道这是dp的情况下,依旧没有分析出来。。在大致瞥了一眼定义后,仍旧没有转移对。菜是十大原罪之首考虑两个字符串一般都需要在状态中记录下当前分别在各个串的哪个位置那么前两维我们就定义出来了f[i][j]f[i][j]f[i][j]表示在A串中进行到前i位,B串进行到前j位等等,这样的定...原创 2019-10-25 17:39:11 · 245 阅读 · 0 评论 -
知识点-Manacher算法
以下算法讲解均学自https://segmentfault.com/a/1190000008484167,供大家学习(这绝对是蒟蒻宝宝写的最最最最良心的一篇博客了)算法分析In my opinion,manacher算法最大的好处就是解决了字符回文串长度的奇偶问题。一般而言,求解字符串的回文子串,我们都会暴力枚举每一个点,然后左右延展,看两边是否相等,最后取一个长度的最大值但如果遇...原创 2018-07-30 22:20:41 · 126 阅读 · 0 评论 -
1007 - 最长公共子序列(输出该子序列及其长度)
有一天夜晚,我烧毁了所有的记忆,从此我的梦透明了;有一个早晨,我扔掉了所有的昨天,从此我的脚步就轻盈了。 ...原创 2018-10-07 10:51:51 · 5541 阅读 · 0 评论 -
每日一道模板题 - 持续更新中
1008 - KMPLOJ 剪花布条简化版题意【描述】 给定 2个字符串 S,T,判断 S中包含多少不重叠的子串=T 【输入 】 多组数据 读到当个字符’#’表示结束,注意是单个,如果有字符串开头有#,不意味结束 每组数据仅有一行,为由空格分开的 S和 T。 【输出】 对于每组数据,输出一行整数,表示答案 【输入样例】 abcde a3 aaaaaa aa # ...原创 2018-10-08 21:17:39 · 570 阅读 · 1 评论 -
1008 - KMP 最小循环节 - power strings(POJ 2406)
传送门 分析结论:一个字符串的最小循环节长度:len-nxt[len]个数:len/(len-nxt[len]) 如果除不尽的话,就不是完全由循环节构成,那就直接输出1证明一下 对了,这个传送门是假的,懒得贴了…… 代码#include<bits/stdc++.h>#define N 1000009using namespace st...原创 2018-10-08 21:22:28 · 140 阅读 · 0 评论 -
1026 - KMP - OKR-Periods of Words[POI2006]
传送门Little Tip这道题,千万不要看中文翻译!!!我一开始就看的中文,看得我一脸懵逼,什么什么什么鬼啊后来看了题解,还是一脸懵逼再后来滚去看英文版本的,喔~~~豁然开朗不过既然都说到这个份上了大家是不是都觉得我要翻译一下了啊当然不是。自己去翻。英文还是蛮好懂的分析KMP是真的妙,一定要深入理解 nxt[i]nxt[i]nxt[i] 的含义nxt[i]nxt...原创 2018-10-26 14:05:23 · 155 阅读 · 0 评论 -
NOIP前 基础字符串模板
哈希(字符串的常规处理)KMP(字符串匹配)Manacher(最长回文子串)Trie树(用处可多了。)KMP一定要明确nxt数组的含义很多题可以转化为KMP都是牵扯到了nxt的含义所以nxt[i]是什么呢?就是当前这位i的前缀中,前缀与后缀相同的最长的长度记几个结论吧:1.一个字符串的最小循环节长度就是len−nxt[len]len-nxt[len]len−nxt[le...原创 2018-11-09 10:55:24 · 195 阅读 · 0 评论 -
Manacher - Girls' research(HDU 3294)
传送门Analysis难受,1.数组开小,在家里对拍了好久,结果造的数据恰好是上限的一半,然后就不会RE。。。(manacher的数组大小需要在原数的大小上*2)2.要求是长度&gt;=2,注意可以取等3.当i&lt;mx时,p[i]=min(p[2∗id−i],mx−i)p[i]=min(p[2*id-i],mx-i)p[i]=min(p[2∗id−i],mx−i),不要手贱,打成了...原创 2018-11-08 08:00:57 · 152 阅读 · 0 评论 -
AC自动机 - 病毒侵袭持续中(HDU 3065)
传送门AnalysisAC自动机板题注意两点:1 多组数据(虽然题目没有说)2 文本串里会有非大写字母的字符,要注意判断Code#include<bits/stdc++.h>using namespace std;char st[8000000],ch[2000][80];int n,tot=1,ans[1009];struct node{ int tran...原创 2018-12-30 13:55:48 · 151 阅读 · 0 评论