E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
KMP+扩展KMP
POJ-3080 Blue Jeans
KMP+
枚举
题目链接:http://poj.org/problem?id=3080 每个字符串的长度为60,而且字符串的数量很少,容易想到枚举水过。这题目的数据,就算纯暴力不优化,貌似也能过。加个KMP匹配也看不出多少优势。。。我在写KMP的时候,犯了一个低级的错误,居然把匹配过程写错了,导致wa了很久,下次吸取教训!!! 1 //STATUS:C++_AC_0MS_164KB 2 #in
·
2015-10-31 11:21
poj
POJ-1226 Substrings
KMP+
枚举
题目链接:http://poj.org/problem?id=1226 买一送一的题目,稍微修改POJ3450或POJ3080的代码就可以了。不过C++和G++不支持strrev()函数,因为strrev()不是ANSI C的语法,改为_strrev()就可以了。 1 //STATUS:C++_AC_0MS_172KB 2 #include<stdio.h> 3
·
2015-10-31 11:21
substring
POJ-3450 Corporate Identity
KMP+
枚举
方法也是
KMP+
枚举,不过这题的数据大一点。
·
2015-10-31 11:21
entity
hdu 3374 String Problem (
kmp+
最大最小表示法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374 题目大意:输出最大和最小的是从哪一位开始的,同时输出最小循环节的个数。 这里简单介绍对字符串最小表示的方法: (1) 利用两个指针p1, p2。初始化时p1指向s[0], p2指向s[1]。 (2) k = 0开始,检验s[p1+k] 与 s[p2
·
2015-10-31 11:53
String
扩展KMP
题目
hdu4333 /* 题意:字符串s[0..n-1],每次把最后一个字符放到前面,求形成的字符串比最初串分别小,相同,大于的个数 因为是为了练习
扩展KMP
所以肯定是
扩展KMP
, 为了循环方便,
·
2015-10-30 14:16
KMP
KMP和
扩展KMP
这种东西基本上在纸上自己推导一下就能做出来XD 转发注明出处 KMP 给出两个字符串A(称为模板串)和B(称为子串),长度分别为lenA和lenB,要求在线性时间内,对于每个A[i] (0<=i<lenA),求出A[i]往前和B的前缀匹配的最大匹配长度,记为ex[i](或者说,ex[i]为满足A[i- z+1..i]==B[0..z-1]的最大的z值)。KMP的主要目的是求B是不是
·
2015-10-30 13:54
KMP
学渣乱搞系列之
扩展KMP
的那点事
扩展KMP
牵涉了一些相对运动的姿势,比较费解!本学渣看了一天的
扩展KMP
,打算写点东西。。。本文看后,出现的后果本人一概不负责。毕竟我不是很会表达。
·
2015-10-30 11:55
KMP
扩展KMP
--- HDU 3613 Best Reward
Best Reward Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3613 Mean: 给你一个字符串,每个字符都有一个权值(可能为负),你需要将这个字符串分成两个子串,使得这两个子串的价值之和最大。一个子串价值的计算方法:如果这个子串是回文串,那么
·
2015-10-28 08:32
HDU
HDU Best Reward (
扩展KMP
)
Best Reward Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/65536K (Java/Other) Total Submission(s) : 23 Accepted Submission(s) : 8 Problem Description
·
2015-10-27 16:12
HDU
HDU 2594 Simpsons’ Hidden Talents
经典
扩展kmp
。
·
2015-10-23 08:18
hidden
HDU 2594
扩展kmp
模板题
题目大意: 给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <vector
·
2015-10-23 08:07
HDU
HDU 3336
扩展kmp
题目大意: 找到字符串中所有和前缀字符串相同的子串的个数 对于这种前缀的问题,通常通过
扩展kmp
来解决 其实吧这是我第一次做
扩展kmp
的题目,原来确实看过这个概念,今天突然做到
·
2015-10-23 08:06
HDU
POJ 3450 Corporate Identity (
KMP+
暴搞)
题意: 给定N个字符串,寻找最长的公共字串,如果长度相同,则输出字典序最小的那个。 找其中一个字符串,枚举它的所有的字串,然后,逐个kmp比较.......相当暴力,可二分优化。 #include <cstdio> #include <cmath> #include <iostream> #include <cstring>
·
2015-10-21 12:04
entity
扩展KMP
算法
二
扩展KMP
算法思想 和KMP算法的是想类似,充分利用已经
·
2015-10-21 12:46
KMP
hdu 3374 String Problem
kmp+
字符串最小表示法+next数组性质
#include usingnamespacestd; chars[2000000+10],st[1000000+10]; intf[1000000+10]; voidgetfail(char*p) { intm=strlen(p); f[0]=0; f[1]=0; for(inti=1;is[j+k]) if(i+k+1>j) i=i+k+1; else i=j+1; elseif(j+k+
xinag578
·
2015-10-16 15:00
基础算法
扩展KMP
继续发模板……#include#include#defineMAXN1000000usingnamespacestd;inlineintmax(inta,intb){returna>b?a:b;}intnext[MAXN+5],ex[MAXN+5];chara[MAXN+5],b[MAXN+5];voidgetdata(char*s1,char*s2,int*data){inti,j,k;intl
贝露SAMA
·
2015-10-02 17:46
hdu 5442 Favorite Donut(
kmp+
最小表示法)
题意:有一个len长度的环,问有没有字典序最大长度为len的串在这个环里。如果有的话,且只有一个,输出其开头的下标(下标从1开始)再输出0表示顺时针(从左至右),1表示逆时针(从右至左)如果多个,输出开头下标最小的那个。如果顺时针,逆时针的字典序一样,且开头下标一样,优先输出输出顺时针。解析:参考了别人的题解,用最小表示法来做。循环字符串的最小表示法的问题可以这样描述:对于一个字符串S,求S的循环
HelloWorld10086
·
2015-09-24 14:44
字符串-kmp
hdu 5442 Favorite Donut(
kmp+
最小表示法)
题意:有一个len长度的环,问有没有字典序最大长度为len的串在这个环里。如果有的话,且只有一个,输出其开头的下标(下标从1开始)再输出0表示顺时针(从左至右),1表示逆时针(从右至左)如果多个,输出开头下标最小的那个。如果顺时针,逆时针的字典序一样,且开头下标一样,优先输出输出顺时针。解析:参考了别人的题解,用最小表示法来做。循环字符串的最小表示法的问题可以这样描述:对于一个字符串S,求S的循环
HelloWorld10086
·
2015-09-24 14:00
HDU
5442
[置顶] 字符串相关总结
HASHHASH相关Tire树Tire树初探KMP/
扩展KMP
KMP/
扩展KMP
AC自动机及其相关AC自动机ManacherManacher最小表示法最小表示法
slongle_amazing
·
2015-08-22 10:00
扩展kmp
算法
扩展KMP
算法什么是
扩展KMP
?
扩展kmp
是求模式串和主串的每一个后缀的最长公共前缀长度。
扩展KMP
算法是利用前面的已知条件减少多余匹配,达到缩短时间的算法。
baidu_30541191
·
2015-08-14 17:00
zoj 3643 Keep Deleting
思路:
KMP+
堆栈,很巧妙的思路,用栈记录下每一次匹配成功时候的位置,当完全匹配成功的时候,就弹出相应程度的堆栈内容,原来一直错的地方在于,每次放到堆栈里的是陪陪失败后的位置,但是那样的话会有重复的情况
bryant03
·
2015-07-15 21:00
[NOI2014]动物园(
kmp+
递推)
【题解】这里首先定义失配指针f[i]满足:第i个位置的字符与第f[i]位相同,字符数组从1开始 如:abaf[1]=0,f[2]=0,f[3]=1 要求出num[i],只需延f指针上溯,找到所有长度不超过i/2的位置,它的数目即为num[i]可以考虑fail树的思想,用cnt[i]记录从i延失配指针上溯,能遇到的结点数目 找出最大的长度不超过i/2的位置j,则num[i]=cnt[j]+1倍增法即
cjk_cjk
·
2015-07-13 22:00
KMP
递推
fail树
浅谈Manacher算法与
扩展KMP
之间的联系
首先,在谈到Manacher算法之前,我们先来看一个小问题:给定一个字符串S,求该字符串的最长回文子串的长度.对于该问题的求解,网上解法颇多,时间复杂度也不尽相同,这里列述几种常见的解法.解法一通过枚举S的子串,然后判断该子串是否为回文,由于S的子串个数大约为,加上每次判断需要的时间,所以总的时间复杂度为,空间复杂度为.boolcheck(string&S,intleft,intright){wh
Sky丶Memory
·
2015-07-03 22:45
Data
Structure
浅谈Manacher算法与
扩展KMP
之间的联系
首先,在谈到Manacher算法之前,我们先来看一个小问题:给定一个字符串S,求该字符串的最长回文子串的长度.对于该问题的求解,网上解法颇多,时间复杂度也不尽相同,这里列述几种常见的解法.解法一通过枚举S的子串,然后判断该子串是否为回文,由于S的子串个数大约为,加上每次判断需要的时间,所以总的时间复杂度为,空间复杂度为.boolcheck(string&S,intleft,intright){wh
Sky丶Memory
·
2015-07-03 22:45
Data
Structure
【自用】OI计划安排表一轮
网络流√上下界最大流√线性规划转费用流√RMQ优化建图√单纯形√字符串相关hash√
扩展KMP
回文自动机数据结构平衡树启发式合并替罪羊树LCT树套树KD-Tree二分答案分数规划√贪心动态规划斜率优化√
Vmurder
·
2015-06-11 11:00
计划
OI
自用
CSU1620: A Cure for the Common Code(
KMP+
区间DP)
DescriptionInputOutputSampleInputabcbcbcbca abbbcdcdcdabbbcdcdcd 0SampleOutputCase1:7 Case2:11HINTSource题意:把字符串简化,问简化得到的最短长度是多少思路:要简化首先要求循环节,这里用kmp解决,而要求所有简化中最短的的话,用区间dp可以求得#include #include #include
libin56842
·
2015-05-17 19:00
CSU
(
扩展kmp
,dp思想,矩阵优化)
题解:首先对于要计算出对应的后缀包含多少前缀,如果单单指考虑这样某个后缀能和多少前缀重合,可以通过
扩展kmp
求得。
My_ACM_Dream
·
2015-05-10 00:00
hihoCoder 1084
扩展KMP
(后缀数组)
题意:给出两个串,A和B,问A串中有多少个子串和B是‘匹配’的。这里的匹配要满足:将一个字符串转化为另一个字符串所需要改变字符的最小数目。对于A中的一个子串,如果它的长度和B的相同且它们之间的海明码距离不超过k,我们认为它们是匹配的.题解:用后最数组匹配A的正串的每个后缀和B的正串的最大匹配数,相反同样用后缀数组匹配A的反串的后缀和B的反串的最大匹配。分别用f[i][0]和f[i][1]记录。这样
My_ACM_Dream
·
2015-04-27 00:00
BZOJ 3620 似乎在梦中见过的样子
KMP+
暴力
题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成ABA的形式,其中|A|>=k,|B|>=1梦の中で逢った、ような…...n>1]之间的前缀与后缀匹配那我们就求出长度不超过|S|-1>>1的最长前后缀,判断是否>=k即可这怎么和去年NOI的某道【植物园】很像。。。呵呵。。。于是常数略大,光荣垫底#include #include #include #include #def
PoPoQQQ
·
2015-03-20 19:00
kmp算法
暴力
bzoj
BZOJ3620
KMP ·
扩展KMP
· Manacher 专题
涉及到的知识点:KMP,
扩展KMP
,Manacher算法,最小最大表示牢记住:next[i]表示前i个字符所组成的字符串的最大前后缀匹配长度。
sr19930829
·
2015-03-20 16:00
KMP
manacher算法
扩展kmp
hdu 1867 A + B for you again (kmp扩展)
题解:
扩展kmp
求最长公共前前缀,对于任意i,如果extend[i]+i==len说明这个是最长的后缀可以输出!!。
My_ACM_Dream
·
2015-02-13 22:00
hdu 4300 Clairewd’s message (
扩展kmp
)
题解:
扩展kmp
,裸题。
My_ACM_Dream
·
2015-02-13 16:00
扩展kmp
算法
扩展kmp
能求很多字符串的问题,比如最长回文子串,最长重复子串。
My_ACM_Dream
·
2015-02-13 13:00
hdu 4333 Revolving Digits (
扩展kmp
)
一种是直接应用
扩展kmp
,将原串复制一遍得到两倍的串,然后原串去匹配这个串。得到每个位置的最长前缀长度,如果长度extend[i]>=len说明相等,否则比较下个字符的大小。
My_ACM_Dream
·
2015-02-13 13:00
acdream 1116 Gao the string!
+next[n]; 最长公共前缀(lcp)有3种方法:
扩展kmp
,hash和后缀数组。
u012127882
·
2015-01-30 19:00
图论
扩展kmp
hihocoder 1084
扩展KMP
&& 2014 北京邀请赛 Justice String
hihocoder1084: http://hihocoder.com/problemset/problem/1084北京邀请赛Just String http://www.bnuoj.com/v3/problem_show.php?pid=34990两道题同样的做法,题目基本内容是找到A的字串中和B串长度一样,且不同的字符个数不超过k个的置。以hihocoder1084为例,是求有多少个A的字串
·
2014-12-23 13:00
String
【BZOJ】【P1009】【HNOI2008】【GTY考试】【题解】【
KMP+
矩乘】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1009设f[i][j]为S串匹配到i,T串匹配到j的方案数那么f[i+1][j']=\sumf[i][j],j'为枚举'0'..'9'使得能从j匹配到的长度,kmp可以做然后建立矩阵加速递推,(似乎所有题解都是这么写……然后都讲的很不清楚……所以……矩阵留给读者自己思考XD)Code:#inc
u012732945
·
2014-12-03 20:00
bzoj
【BZOJ】【P3670】【Noi2014】【动物园】【题解】【
KMP+
树状数组】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3670求出next数组后把next[i]->i连边建成一棵树,num[i]就是i到根的 usingnamespacestd; constintmaxn=1e6+5; intT,n; intnext[maxn],num[maxn]; chars[maxn]; typedeflonglongLL;
u012732945
·
2014-11-30 20:00
bzoj
【恶补字符串Project】
大家都知道我不会字符串……,所有的字符串题都是hash乱搞的……该补一补了kmpTrieAC自动机(fail树)后缀数组后缀自动机最小表示法manacher*
扩展kmp
*后缀树以及在xxx上的各种dp待刷的题
u012732945
·
2014-11-30 10:00
bzoj
【NOI2014】动物园
扩展KMP
如果知道
扩展KMP
的话。。。。就是水题了。。。。#5.【NOI2014】动物园统计提交情况描述提交近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。
u012797220
·
2014-10-29 12:00
[
KMP+
乱搞]hdoj 4749
大致题意: 求文本串中最多能选出多少子串,使得这些子串和模式串匹配。这里匹配的标准是,串中任意两个位置大小关系相同。 大致思路: 对每个位置i求出 0---i中多少个值大于小于等于str[i]并根据这些值去匹配 #include<iostre
暴风雪
·
2014-10-11 15:00
KMP
ZOJ 3587
扩展KMP
思路:这题确实大帝做得很机智!字符串先求最长前缀,反的字符串再求一次最长前缀,然后就可以搞了。每个子串出现的次数就是最长前缀的次数嘛!#pragmacomment(linker,"/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #includ
u011466175
·
2014-09-18 22:00
uva 1358 - Generator(
KMP+
期望)
题目链接:uva1358-Generator题目大意:给定n,表示有n中字符,然后给定一个字符串S,一开始字符串为空,现在每次随机生成一个1~n的字符添加到字符串末尾,问说字符串包含S为子串的生成次数期望。解题思路:首先要对S进行预处理,求出失配数组。定义dp[i]表示末尾部分匹配了i个S串所需要的次数期望,每次枚举可能出现的字符1~n。对于S字符串,i+1肯定是确定的字符,所以对于其他字符肯定是
u011328934
·
2014-09-04 22:00
扩展KMP
算法
刘雅琼PPT讲解链接: http://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html
扩展KMP
:给出模板串A和子串B,长度分别为lenA和lenB,
Yuzhiyuxia
·
2014-09-02 01:00
算法及定理证明
算法原理黑客教程网址大全扩展欧几里德算法卡特兰数莫比乌斯反演反素数深度分析可持久化线段树STLRope位运算及位优化最近公共祖先LCA转RMQ十个利用矩阵乘法解决的经典题目多重背包单调队列优化线段树求矩形面积并SPFA算法c++string用法DAG图的最小路径覆盖
扩展
u011686226
·
2014-08-30 20:00
Codeforces 149 E. Martian Strings
正反两遍
扩展KMP
,维护公共长度为L时,出现在最左边和最右边的位置。。。。然后枚举判断。。。
u012797220
·
2014-08-09 15:00
poj 1509 Glass Beads (最小表示法,模板题)
小记:字符串的最小表示法的最基本的应用,之前还不知道呢,于是查了查资料看了看,发现这方法其实还蛮不错的,思路:如果有kmp,manacher,
扩展kmp
,ac自动机,trie树等学习经验的话,最小表示法还是蛮容易懂的
ljd4305
·
2014-07-25 14:00
【
扩展KMP
】 HDOJ 4300 Clairewd’s message
怎么说呢,最近学KMP学的很浮躁,很不想学,这次的
扩展KMP
真的是没理解,只好弄出一份模板。。。以后有时间抽空补上好了。。。
blankcqk
·
2014-06-29 21:00
KMP
HDU
Codeforces 432 D. Prefixes and Suffixes
用
扩展KMP
做简单省力.....D.PrefixesandSuffixestimelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputYouhaveastring
u012797220
·
2014-05-16 08:00
ZOJ 3643
kmp+
栈处理失配指针
当kmp在母串中匹配到子串之后,删去子串相当于把失配指针往回退到匹配位置的前一个,如果只回退一次的话,直接用数组就可以处理失配指针了,但是本题可能删除后存在多个子串,所以用栈把失配指针位置先存起来,然后找到一次把len长度的失配指针删去,然后栈顶元素就是第一句话说的回退出匹配位置的前一个了。为了方便调用函数,把以前的kmp改成了接口,方便使用,这样就不用开全局变量的数组了,代码看起来更符合工作中开
u011466175
·
2014-05-14 13:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他