hdu 6153 A Secret (kmp)
来源:互联网 发布:手机淘宝排名提升 编辑:程序博客网 时间:2024/06/05 06:11
反转字符串就可以用kmp的,因为要求是后缀,把两个字符串都反转就可以用kmp了,kmp是用来求前缀的。所以对第二个串求next数组,如果不能继续匹配就进行1+2+3+4+……j处理。
Ac代码
#include <cstdio>#include <cstring>#include <algorithm>#include <math.h>#include <iostream>using namespace std;const int maxn=1000009;char s1[maxn],s2[maxn];int nxt[maxn];const int mod=1e9+7;void get_nxt(char *s){ int j,k; nxt[0]=-1; j=0; k=-1; int n=strlen(s); while(j<n) { if(k==-1||s[j]==s[k]) { j++; k++; nxt[j]=k; } else k=nxt[k]; }}long long solve(long long n){ // cout<<(n*(n+1)/2)<<endl;if(n>=1)return n*(n+1)/2; else return 0;}void kmp(char *s1,char *s2){ get_nxt(s2); // printf("%d\n",nxt[2]); int n1,n2,j=0,i=0; n1=strlen(s1); n2=strlen(s2); long long ans=0; for(;i<n1;) { // cout<<i<<" "<<j<<endl; // getchar(); if(s1[i]==s2[j]||j==-1) { i++; j++; } else { ans+=solve(j); j=nxt[j]; ans%=mod; } if(j==n2){ ans+=solve(j); j=nxt[j]; ans%=mod; } } while(j>0){ans+=solve(j); j=nxt[j];ans%=mod;} cout<<ans<<endl;}int main(){ int t; scanf("%d%*c",&t); while(t--) { memset(nxt,0,sizeof(0));gets(s1);gets(s2);int len1=strlen(s1),len2;len2=strlen(s2);reverse(s1,s1+len1);reverse(s2,s2+len2);kmp(s1,s2); } return 0;}
阅读全文
0 0
- hdu 6153 A Secret KMP
- HDU 6153 A Secret KMP
- HDU 6153 A Secret KMP
- Hdu 6153 A Secret【KMP】
- 【KMP】HDU 6153 A Secret
- HDU 6153 A Secret(KMP)
- hdu 6153 A Secret (kmp)
- hdu 6153 A Secret (KMP)
- hdu 6153 A Secret(KMP)
- hdu 6153 A Secret(KMP)
- HDU 6153 A secret(kmp)
- HDU 6153 A Secret【KMP||扩展KMP】
- hdu 6153 A Secret KMP&&扩展KMP
- HDU 6153-A Secret(kmp&&ccpc)
- HDU 6153 A Secret(KMP)
- HDU 6153 A Secret (扩展KMP)
- HDU 6153A Secret(kmp)
- HDU 6153 A Secret 经典扩展KMP
- 字符串问题---括号字符串的有效性和最长有效长度
- 简单实现日历功能
- 机器学习各种算法的特点归纳
- 转发与重定向
- HTML5图片上传图片实时预览,通过DataURL将图片压缩“嵌入”到HTML中,优化图片的加载速度和执行效率。
- hdu 6153 A Secret (kmp)
- Unity-jenkins持续集成--配置
- 中文拼音排序
- HDU 6153 A Secret(kmp)
- gulp插件之-----转化es6代码到es5 取消严格模式 remove "use strict" directive Installation npm install babel-plugin-t
- android APK升级
- 二、maven项目搭建 springmvc+ spring + mybatis(2环境)
- 北京搜狐大数据
- jquery学习-1