hdu6629 2019多校5 拓展KMP 模板题
2019-08-09 10:49
92 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43279710/article/details/98944272
hdu6629
坑点:完全匹配不需要加匹配错误的1次
其余就是模板s的所有后缀子串与s的最大前缀
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 10; typedef long long ll; char s[N]; int nex[N],extend[N]; ll sum; void get_next() { int len = strlen(s); nex[0] = len; int mx = 0,id; for(int i = 1;i < len;i++) { if(i < mx) nex[i] = min(mx-i,nex[i-id]); else nex[i] = 0; while(s[i+nex[i]] == s[nex[i]]) nex[i]++; if(mx < i + nex[i]) { id = i; mx = i + nex[i]; } sum += (ll)min(nex[i]+1,len-i); } } int main() { int T; scanf("%d",&T); while(T--){ scanf("%s",s); sum = 0; get_next(); ll n = strlen(s); printf("%lld\n",sum); } return 0; }
相关文章推荐
- 拓展KMP 模板
- KMP 模板
- 【拓展Lucas】模板
- KMP模板
- HDU 2087 剪花布条(KMP入门模板题)
- 拓展欧几里得算法模板
- hdu6165-tarjan&&多校9&&模板修正|XJB暴力-FFF at Valentine
- HDU 3374 String Problem(最大最小表示法模板+KMP+next数组的运用)
- 杭电多校训练第一场试题题解无代码(2019)
- 2019牛客暑期多校训练营(第四场) J 题 free
- KMP 模板
- KMP模板1(便于理解)(poj3461)
- 递推/思维 (2019杭电多校第五场HDU-6630 permutation 2)
- 2019牛客暑期多校训练营(第五场)C generator 2 —— BSGS
- KMP模板
- [模板]-KMP字符串匹配
- KMP模板
- HDU2087 剪花布条 KMP模板
- HDU 1711 KMP模板
- KMP模板