点击打开杭电2549
Problem Description
Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.
Marge: Yeah, what is it?
Homer: Take me for example. I want to find...
分类:
编程语言 时间:
2015-04-11 17:58:38
阅读次数:
179
该算法在考研时书上看到过,但是因为不作为必考内容所以没有细细复习。这次复习到才感受到它的魅力,并且也花了很久时间才弄懂了基本概念。
关于KMP的细节不再细说,这里只提出学习的方法和对大家可能遇到的问题的理解:
一、KMP之前
当我们需要在字符串S中找到是否存在P时,是怎么解决的?先看看暴力方法是怎么解决的——因为暴力方法最好理解,符合我们的惯性思维,当然时...
分类:
编程语言 时间:
2015-04-11 16:26:23
阅读次数:
151
#include
#include
#include
#include
#include
using namespace std;
#define maxn 400000 + 10
int len, next[maxn], cnt = 0;
int L;
string s1, s;
void getnext()
{
int i = 0;
int j = -1;...
分类:
其他好文 时间:
2015-04-10 22:34:05
阅读次数:
122
#include#include#includeusing namespace std;int next[50005];char s[50005],t[50005];void getnext()//next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。{...
分类:
其他好文 时间:
2015-04-10 21:59:24
阅读次数:
131
ZeptoLab Code Rush 2015D. Om Nom and Necklace【题意】给出一个字符串s,判断其各个前缀是否是 ABABA…ABA的形式(A和B都可以为空,且A有Q+1个,B有Q个,Q给定)。【官方题解】对于前缀P,我们可以把它拆成P=SSSS…SSSST,其中T是S的前缀...
分类:
其他好文 时间:
2015-04-10 15:10:36
阅读次数:
412
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711问题描述:给两个序列a,b,长度分别为n,m(1<=n<=1000000,1<=m<=10000),问序列b是否为序列a的子序列,若是:返回a中最左边的与b相等的子序列的首元素下标;若不是,输出-1...
分类:
编程语言 时间:
2015-04-10 12:57:51
阅读次数:
133
算法核心,Next数组(模式串的最长前缀后缀表)。KMP的思想就是,当匹配不正确时,模式串向后移动的距离为:已匹配的字符串个数 - next[j]而Next数组的算法起始也是递归的字符串匹配过程。Impl: 1 //Next数组计算 2 void CalNext(const char* p, int...
分类:
其他好文 时间:
2015-04-10 10:55:45
阅读次数:
126
DP/KMP/矩阵乘法 好神的题啊……跪了跪了 $n\leq 10^9$是什么鬼……我们还是先不要考虑这个鬼畜的玩意了>_> 用类似数位DP的思路,我们可以想到一个DP方程:$f[i][j]$表示前 i 位数字,它的最后 j 位与不吉利串匹配的方案数,显然有$ans=\sum_{i=0}^x ...
分类:
其他好文 时间:
2015-04-09 23:29:42
阅读次数:
216
题意:
题意同BZOJ3942,不过要删除的串是多串
http://blog.csdn.net/vmurder/article/details/44959895
题解:
……思路一模一样,除了不用kmp用AC自动机
代码:
#include
#include
#include
#include
#include
#define N 101000
#define T 2...
分类:
其他好文 时间:
2015-04-09 17:39:58
阅读次数:
136