kmp
文章平均质量分 67
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
Pty loves string 树上主席树,border,kmp Fail树
link题意:给定一个字符串,Q次询问,每次询问一个x,y,代表前后缀拼起来的字符串,询问该字符串在原串中的可重叠匹配次数。Q<=2e5 n<=2e5思路:由于题目给的是[1,x] [n-y+1,n] ,如果匹配的话,那么就是匹配了[l,l+x-1],[r-y+1,r],且l+x==r-y+1,我们前后缀分开考虑,这里仅讨论前缀,对于某个前缀k,考虑在kmp的过程中,它一直通过fail指针暴跳,这里来复习一下fail指针,对于红色指针他他所对应的fail就是黑色指针,那么对于ababa原创 2021-08-19 22:44:47 · 346 阅读 · 0 评论 -
CodeForces - 1200E 哈希或kmp
题目链接题意:连接n个单词使得前后两个单词 公共后缀与前缀去掉重复的。思路:一开始 想的哈希 ,想不到 kmp 结果看了题解 原来这么简单,直接从后缀开始匹配 最后匹配的j就是结尾匹配的长度。注意哈希要双模数,防止北卡。hashhashhash#include<bits/stdc++.h>using namespace std;//typedef long long ll;#define debug printf("---\n");const int N=210,M=10010;原创 2020-12-06 14:35:37 · 320 阅读 · 0 评论 -
kmp(字符串匹配)
解题报告:这道题好像是挺裸的kmp算法吧,我不太懂,之前学过hh,于是去回看了一遍y总的视频,可恶,然后明白了kmp的大致思路,如果暴力枚举字符串是否匹配的话挺难办的复杂度O(n^2),kmp的思路是预处理出来ne数组,ne数组的下标代表以它为结尾的,他的值代表的是最长前缀和后缀相等的部分,如果匹配不上把j更新成ne[j],注意一点就是如果匹配上了j也要更新成ne[j],用来方便下次匹配。这题...原创 2020-04-20 21:09:22 · 227 阅读 · 0 评论 -
kmp算法
题目在这~思路就是求出最小模板链的移动,求出模板链最大的相等前后缀字符串。#include<iostream>using namespace std;const int N=1000010;char p[N],s[N];int ne[N];int main(){ int n; int m; scanf("%d",&n); cin&...原创 2020-02-04 22:25:30 · 205 阅读 · 0 评论