HDU 1711 裸KMP

原创 2012年03月22日 21:52:25

终于会KMP了... 哇哈哈哈~


#include<iostream>
using namespace std;

int T,N,M;
int next[11111];
int s[1111111],t[11111];

void setNext()
{
     int j=1,k=0;
     while( j<=M )
     {
            if( k==0 || t[j]==t[k] )
                next[++j]=++k;
            else
                k=next[k];
     }
}

int getIndex()
{
    setNext();
    int index=0,i=1,j=1;
    while( i<=N &&j<=M )
    {
           if( j==0||s[i]==t[j] )
               i++,j++;
           else
               j=next[j];
    }
    if( j>M ) return i-M;
    else return -1;
}

int main()
{
    scanf( "%d",&T );
    while( T-- )
    {
           scanf( "%d%d",&N,&M );
           for( int i=1;i<=N;i++ )
                scanf( "%d",&s[i] );
           for( int i=1;i<=M;i++ )
                scanf( "%d",&t[i] );
           printf( "%d\n",getIndex() );
    }
    return 0;
}


版权声明:本文为博主原创文章,转载请写明出处。

hdu 1711 KMP算法模板题

题意:给你两个串,问你第二个串是从第一个串的什么位置开始完全匹配的? kmp裸题,复杂度O(n+m)。 当一个字符串以0为起始下标时,next[i]可以描述为"不为自身的最大首尾重复子串长度"。 ...
  • NK_test
  • NK_test
  • 2015年07月22日 23:00
  • 1252

HDU 1711 裸KMP,附KMP模板

//pattern为模板串,从0下标,长度为len。 返回next数组 template void kmp_pre(T pattern[], int len, int next[]) { next[...
  • baidu_23081367
  • baidu_23081367
  • 2016年08月18日 21:28
  • 111

hdu 1711(KMP的简单应用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (J...
  • liusuangeng
  • liusuangeng
  • 2014年09月10日 18:41
  • 501

hdu__KMP算法模板题【持续更新中】

剪花布条                                                                           Time Limit: 1000/1000...
  • ACMore_Xiong
  • ACMore_Xiong
  • 2015年08月22日 12:08
  • 2985

HDU 1711 KMP算法模板

Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others...
  • qq_22902423
  • qq_22902423
  • 2015年08月19日 18:50
  • 183

HDU 1711(KMP)字符串匹配

链接  HDU 1711 Number Sequence KMP 算法       我以自己理解写的,写的不对,不明白的地方海王子出来,一起共同学习; 字符串匹配 就是KMP,一般思...
  • WR_technology
  • WR_technology
  • 2016年03月22日 17:53
  • 181

HDU 1711 KMP算法入门

为公主殿下而战!
  • Kiritow
  • Kiritow
  • 2016年08月13日 12:14
  • 204

【KMP】【模板】

/* pku3461(Oulipo), hdu1711(Number Sequence) 这个模板 字符串是从0开始的 Next数组是从1开始的 */ #include #include us...
  • u013200703
  • u013200703
  • 2015年09月12日 23:55
  • 982

BFS广度优先搜索(2)--hdu1495(BFS变形题)

非常可乐 Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u Description Input...
  • Acmer_Sly
  • Acmer_Sly
  • 2016年09月11日 22:52
  • 645

hdu 1166 敌兵布阵(树状数组裸题)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...
  • Timeclimber
  • Timeclimber
  • 2017年08月09日 10:33
  • 160
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 1711 裸KMP
举报原因:
原因补充:

(最多只允许输入30个字)