设为首页 加入收藏

TOP

kmp&&hdu 1711 next数组
2014-11-23 20:25:33 来源: 作者: 【 】 浏览:20
Tags:kmp&&hdu 1711 next 数组

kmp这几天一直都在搞这个,今天A了hdu的1711这题,就是简单的kmp模板题;

kmp的核心就是next数组;这几天一直在看严蔚敏的数据结构课本,上面介绍的是

next[j]={

0,j==1,


max{k| 1

1,

}

next[j]表示1到k-1中最长首尾重复子串的长度+1,也就是当模式串的第[j]个和文本串中的第[i]个不匹配时,主串指针i不用回溯,而只需模式串的j=next[j],假设文本串是S,模式串是P则下次S[i]和P[next[j]]比较,j应该回溯到next[j];


 
#include   
#include   
#include   
#include   
#include   
#include   
#include   
using namespace std;  
const int N=1000003;  
int next[N];  
int a[N],b[N];  
void getNext( int str[], int pos ,int len) {  
  
    if(next == NULL || str == NULL )  
        return ;  
  
        next[0] = -1;  
  
        int i=pos,j=-1;  
  
        while( i < len) {  
  
            if(j == -1 || str[i] == str[j]) {  
                i++;  
                j++;  
                next[i] = j;//   
            }  
            else {  
                j=next[j];  
            }  
        }  
}  
int main()  
{  
//freopen("1.txt","r",stdin);   
//freopen("2.txt","w",stdout);   
     int T;  
    scanf("%d",&T);  
    while(T--){  
        int n,m;  
        scanf("%d%d",&n,&m);  
        for(int i=0;i 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 11129 An antiarithmetic per.. 下一篇hdu 4638 Group(离线线段树)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)