hdu 1711 kmp
来源:互联网 发布:单片机ds18b20 编辑:程序博客网 时间:2024/06/06 00:10
http://acm.hdu.edu.cn/showproblem.php?pid=1711
判断b是不是a字串,输出b在a位置下标
kmp模板题
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <map>#include <iostream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)#define clr0(x) memset(x,0,sizeof(x))#define eps 1e-9const double pi = acos(-1.0);typedef long long LL;const int modo = 1e9 + 7;const int maxn = 1e6 + 5,maxm = 1e4 + 5;int a[maxn],b[maxm],next[maxm];int n,m;void setnext(){ int i = 0,j = -1; next[i] = j; while(i < m){ if(j == -1 || b[i] == b[j]){ i++;j++; next[i] = j; } else{ j = next[j]; } } return ;}int kmp(){ int i = 0,j = 0; setnext(); while(i < n){ if(j == -1 || a[i] == b[j]){ ++i,++j; if(j == m) return i - m + 1; } else j = next[j]; } return -1;}int main() { int _;RD(_); while(_--){ RD2(n,m); for(int i = 0;i < n;++i){ RD(a[i]); } for(int i = 0;i < m;++i) RD(b[i]); printf("%d\n",kmp()); } return 0;}
0 0
- KMP hdu 1711
- hdu 1711(KMP)
- 【KMP应用】HDU 1711
- hdu 1711 裸KMP
- HDU 1711 裸KMP
- hdu 1711 朴素kmp
- HDU-1711(KMP)
- hdu 1711 kmp水体
- hdu 1711(KMP)
- HDU 1711 KMP 初级
- hdu 1711 kmp
- hdu-1711-kmp
- hdu 1711 KMP
- hdu 1711 kmp
- HDU 1711 KMP
- hdu 1711kmp裸题
- kmp hdu-1711
- KMP 模板 HDU 1711
- mysql 测试系列2 -TPCC 模型测试 -tpcc-mysql 安装测试
- 20个非常有用的Java程序片段
- 文本比较算法剖析(2)-如何确定最优匹配路径
- hdoj 2552 三足鼎立 【math】
- 第五周工作周报
- hdu 1711 kmp
- 第八周项目5——利息计算器
- iOS应用程序的完整启动过程及其工作原理
- android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a vi
- 第8周项目6 本月有几天
- web工程 路径问题 服务器的根 web工程的根
- mongodb 批量更新 操作文档的数组键
- vijos P1071
- 添加远程库