题目链接:https://vjudge.net/problem/POJ-2185 题意:给定由大写字母组成的r×c矩阵,求最小子矩阵使得该子矩阵能组成这个大矩阵,但并不要求小矩阵刚好组成大矩阵,即边界部分可以空缺(见样例)。 思路: 把每一行视作一个字符,然后对r行求next数组,那么r-nex[r ...
分类:
编程语言 时间:
2019-11-05 13:48:25
阅读次数:
80
这个算法在算法导论上写的很晦涩,而且还搞了一大堆定义和推导。其实背后的想法很naive。 既然要做字符串匹配,那就构造一个有限自动机出来:对于长度为n的pattern,如果当前字符串匹配上了一个字符,那么自动机的状态就是1;如果当前字符串匹配上了两个字符,那么自动机的状态就是2,……如果当前字符串把 ...
分类:
其他好文 时间:
2019-11-05 01:01:52
阅读次数:
147
题目链接: "http://acm.hdu.edu.cn/showproblem.php?pid=3746" 题目大意:给你一个串 $s$ ,要求 $s$ 的开头或结尾添加最少的字符,使得添加后的串可以表示为 $K$ 个相同的子串的拼接 $(K =2)$ 。 题目分析:首先如果这个串s已经是一个循环 ...
分类:
编程语言 时间:
2019-11-04 22:07:11
阅读次数:
101
字符串匹配算法及另外的操作 字符串匹配+统计比较次数 <! more c++ / 字符串匹配算法 / include include using namespace std; define OK 1 define ERROR 0 define OVERFLOW 2 typedef int Statu ...
分类:
编程语言 时间:
2019-11-03 22:06:23
阅读次数:
113
前端代码优化前端标准html、js,查这里mozilla标准(w3c给的是纸面标准,这里是业界实际使用的标准)developer.mozilla.org/zh-CN/ 》作用域链越长,执行性能越差当函数执行时,会形成自己的执行环境,执行环境会与函数的作用域链进行链接,并创建与之关联的活动对象(act ...
分类:
其他好文 时间:
2019-11-03 18:46:51
阅读次数:
108
题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的。 思路: 应用到kmp中nex数组的性质,数组的最小循环节是L=len-nex[len],证明见http://www.cnblogs.com/w ...
分类:
编程语言 时间:
2019-11-03 18:27:00
阅读次数:
118
https://loj.ac/problem/10048 题目描述 给出两个字符串$S$和$T$,要求不断从$S$中删除$T$,删除$T$后空缺为补齐,求删完后的字符串。 思路 单字符串匹配,显然我们可以用$KMP$。先跑一遍$KMP$的板子,预处理匹 ...
分类:
其他好文 时间:
2019-11-03 18:10:25
阅读次数:
91
题目链接:https://vjudge.net/problem/HDU-3336 题意:给定长为n(<=2e5)的字符串s,求s的每个前缀在s中出现的次数之和。 思路: 用dp[i]表示以s[i]为结尾的子串是s的某一种前缀的方案数,那么dp[i]=dp[nex[i]]+1,因为[nex[i]-(i ...
分类:
编程语言 时间:
2019-11-03 16:47:05
阅读次数:
61
题目链接:https://www.luogu.org/problem/P5410 题意:有两个字符串a,b,要求输出b与a的每一个后缀的最长公共前缀。输出: 第一行有lenb个数,为b的next数组(特别地,next1为lenb) 第二行有lena个数,即答案。 思路:扩展kmp模板,涉及字典树,后 ...
分类:
编程语言 时间:
2019-11-03 13:07:34
阅读次数:
92
题目链接:https://vjudge.net/problem/POJ-2406 题意:求出给定字符串的周期,和poj1961类似。 思路:直接利用next数组的定义即可,当没有周期时,周期即为1。 AC代码: #include<cstdio> #include<cstring> #include< ...
分类:
编程语言 时间:
2019-11-03 12:46:45
阅读次数:
75