http://acm.hdu.edu.cn/showproblem.php?pid=2846 题意:给出N个模式串,再给出M个文本串,问每一个文本串在多少个模式串中出现。 思路:平时都是找前缀的,这里将模式串s[1……len]的每一个[i,len]的子串都插入,这样就可以满足条件。还要注意如果两个子 ...
分类:
其他好文 时间:
2016-09-27 16:31:22
阅读次数:
138
题目:http://hihocoder.com/problemset/problem/1036 给一个词典dict,词典中包含了一些单词words。要求判断给定的一个文本串text中是否包含这个字典中的单词words。 相关基础的理解 1. 与用KMP解决的问题的差别 KMP:输入原串S和一个模式串 ...
分类:
其他好文 时间:
2016-09-22 06:27:19
阅读次数:
194
题意:给你一些模式串,再给你一串匹配串,问你在匹配串中出现了多少种模式串,模式串可以相同 AC自动机:trie树上进行KMP。首先模式串建立trie树,再求得失配指针(类似next数组),其作用就是在这一位不匹配时转移到失配指针上。失配指针是转移到某个等于此位置最长后缀的位置,求法是bfs ...
分类:
其他好文 时间:
2016-09-20 06:48:38
阅读次数:
180
/* 很简单 模式匹配的Brute-Force算法 Brute-Force算法实现模式匹配的思想是:从主串s=”s0s1…sn-1”的第一个字符开始和模式串t=”t0t1…tn-1”的第一个字符比较,若相等,则继续比较后续字符;否则从主串s的第二个字符开始重新与模式串t的第一个字符比较。如此不断继续 ...
分类:
其他好文 时间:
2016-09-19 01:15:03
阅读次数:
180
原题链接:http://codeforces.com/problemset/problem/713/Attr 题意:一个集合,有三个操作,+-?,其中+和-和上一次cf的字典树那题是一个意思,?操作是统计满足01模式串的字典树中数的个数。如果模式串比字典中的数长就补全数,如果数长就补全模式串。 分析 ...
分类:
其他好文 时间:
2016-09-16 16:48:00
阅读次数:
142
题目大概说给一个主串和几个有价值的模式串,某个模式串与主串匹配就能累加对应的价值,一个模式串可以在多个位置和主串匹配但同一个位置只能一次,此外主串各个字符最多可以用x次,问如何匹配使获得的价值最大。 ...
分类:
其他好文 时间:
2016-09-15 17:47:20
阅读次数:
215
#include <bits/stdc++.h>#define MAXN 100000using namespace std;string a, b;int next[MAXN]; //****a为主串,b为模式串void get_next(void) //***获得next数组{ next[0] ...
分类:
其他好文 时间:
2016-09-15 00:56:11
阅读次数:
163
0、缘起 一直ym传说中的kmp算法能以最坏线性的时间复杂度搞定字符串匹配, 开始动手看才知道kmp中的K居然是Donald.E.Knuth,《计算机程序设计艺术》的作者。 好吧,继续ym…… 1、传统的字符串匹配算法 2、传统字符串匹配算法的性能问题 用模式串P去匹配字符串S,在i=6,j=4时发 ...
分类:
编程语言 时间:
2016-09-10 11:30:16
阅读次数:
221
题目大概相当于说给一个主串和模式串,主串各个位置i的字符可以等价于[i-k,i+k]位置中的任意一个字符,问模式串在主串中能匹配几次。 ...
分类:
其他好文 时间:
2016-09-06 23:02:05
阅读次数:
175
0 引子 嗯,开始之前先介绍几个概念:目标串:也就是主串,待匹配的串。模式串:去匹配的串。子串:原串中的某一连续片段。前缀:原串前面连续部分组成。后缀:原串尾部连续部分组成其实,不用被这些术语搞晕,更不必记忆,转化为自己的东西,理解了就好。 抛个问题先:现在有两个字符串,其中一个是模式串abcabc ...
分类:
其他好文 时间:
2016-09-05 01:41:59
阅读次数:
286