hdu 5918 (kmp变形)
来源:互联网 发布:新疆用什么软件约 编辑:程序博客网 时间:2024/06/02 07:15
简单的改一下Kmp,如果看不懂,可以去复习一下kmp
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define maxn 2000500typedef long long int ll;int T;int n , m , p;int a[maxn] , b[maxn];int nxt[maxn];void get_next(){ memset(nxt,0,sizeof(nxt)); int i = 0 , j = -1; nxt[0] = -1; while( i < m ) { if( j == -1 || b[j] == b[i] ) { i++; j++; nxt[i] = j; } else j = nxt[j]; }}int kmp(int x){ int i = x , j = 0; while( i < n ) { if( j == -1 || a[i] == b[j] ) { i+=p; j++; } else return 0; if( j == m ) { return 1; } } return 0;}int main(){ int cas = 0; cin >> T; while(T--) { cin >> n >> m >> p; for(int i = 0 ; i < n ; ++i) { scanf("%d",&a[i]); } for(int i = 0 ; i < m ; ++i) { scanf("%d",&b[i]); } get_next(); int ans = 0; for(int i = 0; i+p*(m-1) < n; i++) { if( kmp(i) )ans++; } printf("Case #%d: %d\n",++cas,ans); }}
阅读全文
0 0
- 变形kmp(hdu 5918)
- hdu 5918 (kmp变形)
- HDU 5918 KMP变形
- HDU 4749 Parade Show(KMP变形)
- HDU 4749 Parade Show 数据结构KMP变形
- HDU 4749 & POJ 3167 kmp变形
- BZOJ 3670(KMP变形)
- hdu 4749 Parade Show (暴力水 (正解应该是kmp变形))
- hdu 3336Count the string(KMP变形,求前缀出现的次数和)
- Light oj--1258(KMP的变形)
- HDU5918 Sequence I (KMP变形)
- POJ2406--Power Strings(KMP变形)
- hdu 3466(背包变形)
- hdu变形课(dfs)
- hdu 变形课(DFS)
- HDU 5918 Sequence I (kmp)
- [HDU 5918] Sequence I (kmp)
- HDU-5918:Sequence I(KMP)
- Fiddler过滤
- 计算机内存基本单位,比特、字节等之间的关系
- 记录NGUI<一>
- 【oracle】其他数据对象
- 判断一个二叉树是否是另一个二叉树的子树
- hdu 5918 (kmp变形)
- windows核心编程之作业
- test3
- Unity 5.6 CutPlane实现
- 获取调用JS链接所带的参数
- spring security基本配置
- bzoj3631: [JLOI2014]松鼠的新家 树链剖分||树形dp
- Day11
- 剑指offer之编程(十七)