KMP的巧妙应用……

题目

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define N 100005
int next[N];
long long f[2][N];
void getnext(char str[])
{int i,j,len;len=strlen(str);i=0,j=-1;next[0]=-1;while(i<len){if(j==-1||str[i]==str[j])next[++i]=++j;else j=next[j];}
}
void KMP(char str[],char st[],int v)
{int i,j,len1,len2;len1=strlen(str);len2=strlen(st);i=j=0;while(i<len1){if(j==-1||str[i]==st[j]){i++,j++;f[v][j]++;}else j=next[j];}for(i=len2;i>=0;i--)if(f[v][i]>0&&next[i]>=0)f[v][next[i]]+=f[v][i];
}
int main()
{//freopen("a.txt","r",stdin);int i,t,len1,len2;long long ans;char str0[N],str1[N],st0[N],st1[N];scanf("%d",&t);while(t--){scanf("%s%s",str0,st0);len1=strlen(str0);len2=strlen(st0);for(i=0;i<len1;i++)str1[len1-1-i]=str0[i];str1[i]='\0';for(i=0;i<len2;i++)st1[len2-1-i]=st0[i];st1[i]='\0';memset(f,0,sizeof(f));getnext(st0);KMP(str0,st0,0);getnext(st1);KMP(str1,st1,1);ans=0;for(i=1;i<len2;i++)ans+=f[0][i]*f[1][len2-i];printf("%lld\n",ans);}return 0;
}

【KMP】ZOJ-3587-Marlon's String相关推荐

  1. Zoj 3587 Marlon's String (KMP 字符串拼接 前缀出现次数)

    题意:给字符串S,T,找到所有的tetrad (a,b,c,d), Sa..b + Sc..d = T , a≤b and c≤d.也就是把T分成两段,这两段都由S中的子串组成的,求有多少中组合方式( ...

  2. zoj 3587 Marlon's String(拓展KMP+dp)

    链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3587 题目大意: 给字符串S,T,   找到所有的tetrad ( ...

  3. ZOJ 3587 Marlon's String

    KMP,每匹配到一点就记录一下,然后用fail数组把已经匹配到的但是kmp没有记录的点加上.... Marlon's String Time Limit: 2000MS   Memory Limit: ...

  4. ZOJ 3587 Marlon's String 扩展KMP

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3587 题意:给出两个字符串S和T,S,T<=100000.拿出 ...

  5. [zoj 3587]Marlon's String[kmp]

    题意: Return the amount of tetrad (a,b,c,d) which satisfy Sa..b + Sc..d = T , a≤b and c≤d. 思路: 正反两次kmp ...

  6. 【KMP】Radio Transmission(最小循环子串)

    [KMP]Radio Transmission(最小循环子串) Description 给你一个字符串,它是由某个字符串不断自我连接形成的.但是这个字符串是不确定的,现在只想知道它的最短长度是多少. ...

  7. 【KMP】OKR-Periods of Words

    [KMP]OKR-Periods of Words 题目描述 串是有限个小写字符的序列,特别的,一个空序列也可以是一个串.一个串P是串A的前缀,当且仅当存在串B,使得A=PB.如果P≠A并且P不是一个 ...

  8. 【kmp】似乎在梦中见过的样子

    参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...

  9. ACM入门之【KMP】

    KMP可以O(n)的时间查找出一个字符串在另一个字符串出现的次数和位置. KMP 的精髓在于,对于每次失配之后,我都不会从头重新开始枚举,而是根据我已经得知的数据,从某个特定的位置开始匹配:而对于模式 ...

  10. ZOJ 3587 Marlon#39;s String 扩展KMP

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3587 题意:给出两个字符串S和T.S,T<=100000.拿出 ...

最新文章

  1. 数据结构——HDU1312:Red and Black(DFS)
  2. Service Team在索引表CRMD_ORDER_INDEX中的存储设计
  3. linux系统普通用户ssh不能登陆,关于CentOS普通用户无法登录SSH问题
  4. 全国计算机等级考试用报名吗,全国计算机等级考试网上报名流程及考生报名使用说明...
  5. 第十一篇:稳定性之面向失败设计【过载保护】
  6. 智慧楼宇管理后台、运维配置、设备台账、设备管理、维保统计、巡检统计、维修工单、报修统计、电子巡更、智能楼宇运营、运营后台、智慧社区、楼宇设备监控管理端、智能社区管理系统、楼宇运维管理系统
  7. qc是什么职位_质量管理部门该干什么?又该怎么干?
  8. 微软公布测试版Visual Studio for Mac和Visual Studio 2017 for Windows
  9. 1 Oracle数据库环境搭建
  10. Linux下编译环境及Makefile的学习笔记
  11. Vulkan学习(一):Vulkan环境搭建(Windows)官方教程--(Base code Instance Validation layers)
  12. C#等 句柄是什么?
  13. 盖洛普优势识别器2.0-《现在.发现你的优势》升级版
  14. Javascript设计模式-18-状态模式
  15. Node.js 网页瘸腿爬虫初体验
  16. Windows虚拟主机有哪些优势?
  17. 字节跳动 Go RPC 框架 KiteX 性能优化实践
  18. 弘辽科技:如何获取淘宝推广链接?有哪些推广方法?
  19. TERMIN汤铭 FE1.1四端口USB2.0芯片
  20. 【LAS】IJK设置OPTION源码分析及播放器传递manifest_string到AVInputFormat

热门文章

  1. Python-接口自动化流程(pytest)
  2. android键盘广告,android键盘钢琴Lite郑永修改版+去广告
  3. 扫描仪CCC认证注意事项及标准依据
  4. 【2022软件创新实验室暑假集训】Java环境安装与基础介绍
  5. 全局变量global的用法
  6. 阅读替换净化规则_阅读app下载_阅读客户端安卓下载-优基地
  7. python实现crc32爆破,得到加密文件内容
  8. Google Play 应用上架(二)
  9. WSL / WSL2 问题大全 及 解决方案
  10. 读书笔记 | 牧羊少年奇幻之旅