HDOJ 1711 Number Sequence(KMP)
2013-05-02 23:42
357 查看
超级传送门
KMP,只不过由字符串变成长整形而已,套模板可过。
S[]存放主串,T[]存放匹配串,T[0]和S[0]表示串的长度
AC代码:
KMP,只不过由字符串变成长整形而已,套模板可过。
S[]存放主串,T[]存放匹配串,T[0]和S[0]表示串的长度
AC代码:
/*HDOJ1711 作者:陈佳润 2013-05-02*/ #include<stdio.h> long next[10005]; long S[1000005],T[10005]; void Get_next(long T[]){//构造next数组 int i=1,j=0; next[1]=0; while(i<T[0]){ if(j==0||T[i]==T[j]){ i++; j++; next[i]=j; } else j=next[j]; } } //s[0]和T[0]保存数组长度 int KMP(long S[],long T[]){ int i=0,j=0; while(i<=S[0]&&j<=T[0]){ if(j==0||S[i]==T[j]){// i++; j++; }else{ j=next[j]; } } if(j>T[0]) return i-T[0];//匹配成功,返回起始位置 else return -1;//匹配失败 } int main(){ int i,Time; scanf("%d",&Time); while(Time--){ scanf("%d%d",&S[0],&T[0]); for(i=1;i<=S[0];i++) scanf("%d",&S[i]); for(i=1;i<=T[0];i++) scanf("%d",&T[i]); Get_next(T); printf("%d\n",KMP(S,T)); } return 0; }
相关文章推荐
- HDOJ1711 Number Sequence(kmp)
- HDOJ 1711 Number Sequence ——KMP
- 匹配串HDOJ 1711 Number Sequence(KMP)
- hdoj 1711 Number Sequence 【KMP】
- hdoj 1711 Number Sequence 【KMP】
- hdoj 1711 Number Sequence 【KMP 入门--晕晕滴】
- HDOJ---1711 Number Sequence[KMP模版]
- hdoj1711-- Number Sequence(KMP模板)
- [HDOJ 1711] Number Sequence [KMP]
- hdoj-1711 Number Sequence(数组Kmp)
- HDOJ-1711 Number Sequence (kmp模板)
- hdoj 1711 Number Sequence【kmp(数字数组)】
- hdoj 1711 Number Sequence 【kmp】
- hdoj1711(KMP模板题)Number Sequence
- HDOJ 1711 Number Sequence (KMP)
- 【KMP】 HDOJ 1711 Number Sequence
- HDOJ1711 Number Sequence(KMP)
- HDU 1711 Number Sequence (kmp 已被搞死。)
- hdoj 1711 KMP Number Sequence
- hdu 1711 Number Sequence KMP 基础题