HDU 1711:Number Sequence (KMP入门)
来源:互联网 发布:js原型面试题 编辑:程序博客网 时间:2024/06/05 06:42
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711
字符串的匹配变成了数字的匹配,思路一样。
AC代码:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int text[1000010];int patten[10010];int nex[10010];void getNext(int m) { nex[0] = -1; int k = -1,j = 0; while(j < m) { if(k == -1 || patten[j]==patten[k]) { k++; j++; nex[j] = k; } else { k = nex[k]; } }}int kmp(int n,int m) { int i = 0,j = 0; int lenp = m; //模式串的长度 int lent = n; //文本串的查改都 while(i < lent && j<lenp) { if(j == -1 || text[i]==patten[j]) { i++; j++; } else j = nex[j]; } if(j>=lenp) return i-lenp+1; return -1;}int main() { int N,M,T; scanf("%d",&T); while(T--) { scanf("%d%d",&N,&M); for(int i = 0; i < N; i++) { scanf("%d",&text[i]); } for(int i = 0; i < M; i++) { scanf("%d",&patten[i]); } getNext(M); int ans = kmp(N,M); printf("%d\n",ans); } return 0;}
阅读全文
0 0
- HDU-1711 Number Sequence(kmp入门)
- HDU 1711:Number Sequence (KMP入门)
- HDU 1711 Number Sequence(KMP入门)
- HDU 1711 Number Sequence KMP入门
- hdu 1711 Number Sequence KMP入门题
- HDU 1711—— Number Sequence(KMP 入门)
- hdu 1711 Number Sequence(KMP入门模板题)
- HDU 1711:Number Sequence(KMP)
- HDU 1711 Number Sequence(KMP)
- HDU 1711 Number Sequence (KMP算法)
- HDU:1711 Number Sequence(KMP)
- hdu(Number Sequence 1711)kmp
- HDU - 1711 Number Sequence (KMP模板)
- hdu 1711 Number Sequence:(KMP)
- HDU-#1711 Number Sequence(KMP)
- hdu 1711 Number Sequence KMP(水)
- HDU 1711 Number Sequence(kmp)
- HDU 1711 Number Sequence(KMP)
- codeforce 829C
- NOIP2017心路历程
- Linux 命令每日一练:vi命令
- 使用Mysql 5.5数据库Hibernate自动建表创建表出错table doesn't exist
- Java基础总结第(2)天
- HDU 1711:Number Sequence (KMP入门)
- 解决Maven项目发布报错:Publishing failed Could not publish to the server. java.lang.IndexOutOfBoundsException
- Docker 安装、操作常用命令
- 购物车Adapter recycle的item点击事件
- 使用requests的session机制模拟登陆知乎
- 字符串的getBytes方法
- java加密的方式
- chrome 查看 post 请求 _xrfs 参数
- VC6.0 cannot find the definition (implementation) of this function解决方法