
字符串处理
字符串处理
快乐撸代码
一个今天胜过两个明天
展开
-
HDU - 1160 最长上升子序列以及记录路径
题意:第一列,给出老鼠的重量,第二列,给出老鼠的速度,要证明老鼠的重量越大,速度越小,给出最多老鼠的数量,并说明第几只。 思路:先将老鼠按照重量从大到小排序,然后速度是从小到大,求最长上升子序列,学习下怎么输出最长上升子序列的路径,输出最长上升子序列路径有很多种方法,这里面是记录每个数字在最长上升子序列中的下标。因为在维护最长上升子序列数组的时候,我们会遍历到每一个元素。代码里面有样例; /...原创 2019-07-28 17:48:54 · 748 阅读 · 0 评论 -
HDU - 1503 最长公共子序列记录路径
题意:先给两个水果的名字然后得出一个最短的序列包含这两个词。 思路:我一开始的思路是先求出最长公共子序列,然后做一些处理将其他的部分输出来:两种水果的字符串和最长公共子序列的字符串这三个字符串做对比,当他们三个相同的时候将最长公共子序列里面的字符去掉,如果不相同,将水果中的字符串中的字符去掉直到相同为止,不过网上用了一个好像比较方便的方法,在输出最长公共子序列的路径时候也能输出其他的字符(利用递...原创 2019-07-28 18:02:54 · 392 阅读 · 0 评论 -
【牛客-白兔的字符串】 滚动哈希
【牛客-白兔的字符串】 哈希 链接:https://ac.nowcoder.com/acm/problem/15253 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 白兔有一个字符串T。白云有若干个字符串S1,S2…Sn。 白兔想知道,对于白云的每一个字符串,它有多少个子串是和T循环同构的。 提示:对于一个字符串a,每次把a的第一个字符移动到最后一个,如果操作若干次后能够得到字符串b原创 2021-05-10 10:34:15 · 312 阅读 · 0 评论 -
AC自动机(初步学习)
一开始讲AC自动机就是在字典树上做一个KMP,吓得我感觉好难,不过了解了以后,感觉也就是有点难度,不吓人。 它只是在字典树上用了KMP的思想 典型问题:给n个模式串和一个文本串,问有多少个模式串在文本串中出现过。 暴力字典树的思路:将n个模式串建立一个字典树,结束时累加一次,文本串开始遍历字典树,标记路径,然后每次结束时候都会回溯到根节点。 用上KMP的思想:有一个预处理,在每一个节点i ...原创 2020-02-13 10:37:51 · 150 阅读 · 0 评论 -
字典树模板 HDU - 1251
题意: 给一些单词,换行键后,查找以后输入的单词作为前缀的话们在之前出现过几次。 思路: 字典树模板----像查字典的顺序一样 #include<string> #include<stdio.h> #include<iostream> using namespace std; struct tire_node { int count;//前缀出现的次数 ...原创 2019-09-23 19:57:18 · 168 阅读 · 0 评论 -
扩展KMP(记录学习过程)
首先看了几篇博客,发现还得耐下心来理解,动手画图 ,才能理解俩字符串还有数组之间神奇的关系 这篇博客图不错:https://segmentfault.com/a/1190000008663857 /*扩展kmp */ /*一开始假设求出了 next数组,然后去求extend数组,然后方法一样 next数组可以自己求自己*/ #include<stdio.h> #include&l...原创 2020-02-12 14:59:19 · 162 阅读 · 0 评论 -
HDU - 3068 最长回文manacher马拉车算法
# a # b # b # a # 当我们遇到回判断最长回文字符串问题的时候,若果用暴力的方法来做,就是在字符串中间添加 #,然后遍历每一个字符,找到最长的回文字符串。那么马拉车算法就是在这个基础上进行了改进,我觉得和KMP有点像。 当我们遍历第一个字符串的时候,肯定有一个回文串半径。 设一变量mx为半径达到最右边的下标,id为mx的中心,len为最长半径的长度。 如图所示,i关于id存在对称点...原创 2019-08-17 10:12:59 · 167 阅读 · 0 评论 -
POJ 3461 Oulipo KMP算法(模板)
题意: 给两组字符串a和b,求a在b中出现的次数 关于KMP: 马拉车算法是处理回文串,而KMP是处理前后缀的相同字符串的最长长度。 a | a | b | a | a | f | a | a 数组 p [ ] 下标为 i a | a | b | a | a | c 数组 t [ ]下标为 j -1| 0 | 1 | 0 | 1 | 2 next [ ] shu数组的值 比较这两组...原创 2019-08-17 11:00:30 · 190 阅读 · 0 评论